Вы не можете вернуть Интерфейс, потому что контракт, необходимый для поддержки всех типов, которые могли бы поддерживать интерфейс, бесконечен.
Только потому, что объект Car и объект Motorcycle поддерживают IVehicle, при десериализации клиент не будет знать, какой тип создать.
То же самое с возвратом производных классов по тем же причинам.