Делая так, вы сохраняете пространство имен этих классов в модуле Vehicle
:
Car.new
# => NameError: uninitialized constant Object::Car
Vehicle::Car.new
# => #<Vehicle::Car:0x0000123456>
Таким образом, вы можете также иметь отдельный класс Car
вне модуля, и класс Vehicle::Car
не будет мешать.