Almost everything you say seems to be a misunderstanding of the best features of NHibernate.
These guys would write foreach loops that would suck most of the database into RAM.
NHibernate provides modular caching, so this is what you want. Generally, the data in the database is used by the application, so the more that is in memory the better.
I found that it just makes data access more complicated
It is perhaps the only library that allows true OO for database driven apps in .NET You may think it is "more complicated" than the ad-hoc data widgets provided by Microsoft, but those are tools ill fitted for any serious application. The benefits of a well defined object model are not to be sniffed at.
To make matters worse, when I used NHibernate, there was a bug in runtime code generation, which was very hard to track down and impossible to fix.
I sort of doubt this. Can you provide a ticket number for this bug?
Stick with a simple ADO -> Object mapper and write queries as-needed.
Perhaps if you are writing one-off homepages and photo albums and can't be bothered to learn how to write decent programs (or maybe you are a VB programmer anyway).
Don't rely on a more complicated library to handle things like transactions
As the author of several 10,000 to 100,000 user web applications, I can tell you that NHibernate's transactions and the lock construct from C# are amazing. Furthermore lazy loading and relationship mapping work great in NHibernate... It is very easy to specify when you want a relationship to be lazily loaded and when not, a simple attribute value needs to change.
Be very careful introducing relationships into the business objects, especially automatically-populated ones
(This is what lazy loading is for and it is very easy to set it on or off.)
As a final thought, I would ask why to use NOSQL databases with C# when you can use NHibernate and memcached to persist objects without a need for another data layer? There are plenty of valid reasons either way. And I'm sorry to take the piss out of you, but you don't know what you are talking about.