Build_cache_dir = ... will not share object files between envs?

You can if they have the same build flags. Try to run pio run --verbose. You will see build flags. If flags match, PlatformIO will cache these objects in a cached folder.