> So if you access a1.b then it will also fetch a2.b and
> cache it if you loaded a2 within that same transaction.
Ah ha! I'd implemented the same trick in this older Java ORM:
https://github.com/stephenh/joist-java/blob/master/domain/sr...
It worked well!