Asked out of ignorance, but do the envvars not allow one to easily co-locate data/config/cache by setting them all to the same value?
Each of the data, config, and cache envvars would all be set to ~/.data in this setup (though “data” isn’t a name I’d use)