Основным отличием является то, которое вы указываете: отладка не включена в выпуск, а трассировка -.
Предполагаемое отличие, насколько я понимаю, состоит в том, что команды разработчиков могут использовать Debug для создания насыщенных описательных сообщений, которые могут оказаться слишком подробными (или раскрывающими) для потребителя (ей) продукта, в то время как Trace предназначен для передачи. виды сообщений, которые более конкретно ориентированы на инструментарий приложения.
Чтобы ответить на ваш последний вопрос, я не могу придумать причину, чтобы использовать Debug для инструментирования фрагмента кода, который я собирался выпустить.
Надеюсь, это поможет.