PostgreSQL shares other caches between processes so they probably could have a global plan cache if they wanted. I wonder why they don’t though.
One possible reason is that the planner configuration can be different per connection, so the plans might not transfer