This is similar to what Stan already does if you specify a dense mass matrix (Euclidean metric). It uses exponentially increasing blocks to alternatively draw a sample and update the covariance matrix estimate. We can then use that to adjust the metric over which we sample.
We essentially do what you’re suggesting informally by reparameterizing a model by eye to try to put all the parameters on the same scale. Once everything’s on a unit scale, correlation doesn’t matter. It’s not the correlation that hurts Stan, it’s the varying scales plus correlation when we use a diagonal metric. Also, varying curvature is a problem in that there’s no fixed mass matrix/metric that works everywhere, so we have to be conservative, which can result in slow sampling with a small step size (the alternative is to introduce more bias as you won’t get into the high curvature regions with larger step sizes).