А, что такое UpCast и DownCast (типа up это преобразование к производному, а down к базовому)? Что за термины вы новые придумали? Для работы с dynamic используется динамическая среда выполнения и нет никакого динамического или еще какого приведения типов. dynamic - фактически это вообще отсутствие типа, вернее, отсутствие типа у переменной, а у присвоенного значения естественно тип есть и никаких приведений типов не происходит. Приведение будет когда вы будете статически типизированной переменной присваивать значение dynamic. И еще раз, в DLR (те в dynamic) попросту отсутствует понятие типа, какие бы мы значения не присваивали dynamic (хоть наши обычные переменные, хоть dynamic), никакого преобразования типов не делается (особенно выдуманных вами UpCast и DownCast).