But why doesn't Postgres tuned itself based on the system is running on, at least the basics based on available RAM & cores?

I've not tried it myself but I believe that's what pgtune does: https://github.com/gregs1104/pgtune