Hmm.. it must be even harder to develop for such a fragmented platform as the personal computer, then, where there is essentially nothing guaranteed except the OS you are writing for.
iPhone is easier like consoles. Android is harder like PCs.
Having a uniform interface for all hardware is great, but doesn't solve the specific problem here.
There are so many variables that affects performance. Some of them are:
* Graphics card fillrate
* Graphics card memory size
* Graphics card buss speed
* CPU speed
* CPU cache size
* RAM Size
* RAM speed
* Optical disk speed
* Harddrive speed
* Harddrive cache size
You need to make tradeoffs based on how they affect your particular application.