OpenGL had nothing to do with the Rage "fiasco", it's just a pain in the ass to send a sh*t ton of data to the card every frame and keep everything in sync. There could have been some vendor specific problems, but it's not because of the API. Both API's keep developers at arms length from the hardware, there is no better rendering api for anything.
In terms of tech, tech for the next 4-6 years isn't going to increase much if it all, its going to be more speeding up the pipeline, rather than fancier graphics, so it's a moot point.
EDIT:
Remember on the 360, you have shared memory between the graphics card and everything else so you don't have to transfer data to the video card after you read it from the HD.
OpenGL and Direct3D are really the same thing, and the problem really is OpenGL and Direct3D need to go away, they are just a nasty abstraction layer that keep developers at arms length from the hardware, but to vigorously say one is better than the other is just false, they are both equally obnoxious to work with, when doing what the api supports, and doing what it doesn't provide direct support for like virtual texturing.
Looks like we have the same view towards what is wrong with graphics on pc.
I always promoted huge local memory for graphics cards on pc to prevent unnecessary copying. Neither AGP nor PCI express make sense when copying can be totally avoided with storing all data at the right place at load time and just setting the respective pointers for the rendering pipeline.
And a more direct and standardized hardware access would be highly welcome.
The permanent problems with running into incompatibilites between graphics libs and drivers usually makes me shift as much code as possible onto the main cpu to prevent problems later with faulty software that's outside my own code.
My own engine is slower and less effect-heavy than it should be.
For compatibility and maintenance reasons.
And this can't be the future of programming on pc with these high powered gpus of today.
I hope that someday supporting different gpus will be as easy as switching the compiler optimizations in my C++ dev kit to a certain cpu type.