code to work out sensible machine defaults wouldbe a good idea. VW has allowed gc tuning for years - actually over a decade - with exquisitely precise policy capabilities.
Almost nobody ever uses them :-(
Almost everybody complains that the defaults don't work.
The defaults have changed recently, mostly because the defaults at 12 odd years old were a bid long in the tooth. And you are right no-one ever looks at the memory policy logic until it's much too late.
However I've been thinking off and on about squeak and I guess I should propose a few VM changes to make some data collection easier, then code up a memory policy creature to adjust things dynamically.
There are a few places where we need to collect millisecond information, and some statistics on loop counters. With that one can fiddle all you want. How that affects an application is anyones guess.
PS back to my GC paper, where I say I'm waiting for the days when you can allocate a few trillion bytes, run the VM, quit and never need to do a GC. That's a more effective solution.