Why is there no such feature as join fetch all lazy entities by default?

While designing an application I have faced some questions related to the lazy/eager fetching and all the stuff around.

Basically, as far I as understand, doing eager fetching is not a good thing and it is better to do a lazy load most of the time. Here we are running into an issue with lazy loading in the same transaction. We cannot reopen a new transaction to load the lazy entities.

One of the, I'd say, latest (or the most modern?) solutions is to use @NamedEntityGraph with @EntityGraph that are using JOIN FETCH to join the specified entities in one query.

So the question is - why is there no way to do a join fetch by default for all the lazy entities? I mean, now I have to add @NamedEntityGraph for every model where I have to lazy load the entities and add @EntityGraph to tell to use the NamedEntityGraph that I specified. If I add the entities to the model that means that at some point I am going to use them (despite the fact I mark them as lazy). What is the problem not to join fetch all the lazy entities by default? That would just simplify the code, I believe.

To my mind came a few answers:

  1. There is actually such a thing (but I haven't looked for it correctly)
  2. It is not good for performance even to join fetch all the entities (Though eager fetching is not good as well? But If I have the entities in my model it means that I will use them at some point so why not to join fetch all of them?)
  3. It is just no implemented at the moment.

To add more context - I use a few layers where some of them are repository and service. I want the repository and service to only work with models. But I have also got the DTO projections of the models and assemblers to map the models to DTO and back. I don't want to tie the DTO mapping to the service (which would actually solve the issue with lazy loading as we would use the same transaction, I believe). So I use assembler in controllers to map the models, that service returns, to the DTO and return those DTOs to the client.