Long ago starting DIrectX programming I was aplalled out all the wrapper/skeleton code stuff you needed just to get an Application to run (use the examples from the SDK and its very obvious).
Unfortunatrely with the spectrum of targeted hardware it was necessary to have to be able to determine if the hardware the Application/drivers was to run on supported various operations (or had to be emulated softwarewise) -- even just to have an advanced enuf DirectX driver version. A good chunk of the App code was to do that.
Maybe those days are back now with Apps on these handheld things becoming popular (ack -- some of the processors dont even have native Floating point ops !!!) and certainly with their power awareness and sleep/wake strategies etc...
Oh and you are lucky you dont have the monster laptop I had years ago that if you tried to hold it in your lap you would literally burn your legs (full power CPU and GPU in the thing and retard designers (a well known company) puting the air blower vents on the bottom instead of the sides )