Arguably, this particular failure case is what has been automated. It isn't actually necessary to have an ORM that all-but-requires N+1 select problems. I wrote one once that could join across an arbitrary number of tables in on shot. Alas, it is now gone in an acquisition. But I know it's possible.
Part of the problem is that I think most ORM authors know OO but don't necessarily grok SQL, so you get the same failure cases over and over again. It's not easy to write an ORM that can do arbitrary joins and it's borderline impossible to retrofit one that didn't have it built in from day one. The other big failure that you get is a failure to support group queries or arbitrary selects.
Can this loop be closed and automated? Why do we all keep having to do this manually?