Definitely enjoyed this article. 'Tried to read it all thoroughly, but would liked to have seen some theoretical best practices for optimising for each set of approaches (read architectural optimisations), and where the responsibility lays for accommodating said optimisations.
Like most software, you can just write code, compile it and it will run - but what about those optimisations, like putting BVH data into Infinity Cache? Can you force that, and does it make a difference?
Most end users have a very simplistic outlook on things and only care about what they can see with their eyes right now, the moment they plug in their video card, load the drivers and fire up their favourite game, and that pretty much favours Nvidia right now.