Yarn did change this, but then it was rolled back, because too many things depended on actual files being there.
So now a project has to explicitly opt-in to Yarn pnp.
So now a project has to explicitly opt-in to Yarn pnp.
The reason for that is that PnP tends to require recent versions of some of your dependencies, so migrating to it can be somewhat involved, and it's better experience to let you keep using the install strategy you're used to until you decide to change it yourself.
New projects, on the other hand, already use the latest versions from their dependencies, so it's a much better starting point for PnP.
Probably any package that ships assets (static files) and uses file I/O to read instead of require()