Meh ... There is a lot that goes into decisions about how efficiently the software should be coded, and Microsoft certainly doesn't hold the monopoly on inefficient programming. Compatibility across multiple platforms, reusability (Volt may be using OTS GM modules for some portions of their code), reliability (error checking / correction), testability (diagnostic support), configurability (software updates), etc, etc. All those "-ilities" can contribute to less efficient code while (in theory, anyway) contributing to a more robust system.
Another thing to consider is that more and more devices have their own microcontrollers and therefore also contribute to the software "load". Consider just the radio, for instance... my 1982 Chevette radio was 100% hardware... volume & tuning & station presets were all mechanical... Nowadays, new cars have a "theater system" ... 7.1 surround, bluetooth, touchscreen, USB, etc, etc. ... each feature 100's or 1000's of lines of code! Often the identical hardware (head unit) is used in various trim levels, with just the software image tweaked to expose the features appropriate to the price of the car.
__________________
|