Huh? I feel like I'm missing something. Eager loading, done right, is how you avoid the N+1 problem.
In ActiveRecord, Customer.includes(:orders).where(customer_name: 'Fred') would execute, at most, two queries even if there are many Freds with many orders.
The only real ORMs I've used are ActiveRecord and a tiny bit of EntityFramework.
Is this kind of eager loading not common? Or did I misunderstand your remark?
This can be avoided with something like e.g. EntityFramework which is based on the IQueryable interface and expression trees. In EF it would be
var query = DbContext.Customers.Include( c => c.Orders).Where( c => c.customer_name == "Fred");