We've gone back and forth on this a few times (PUP-2702, PUP-2639) but after running into issues from PS engagements to training to this puppet-dev thread, it seems the best option is actually to default the environment_timeout to 0 (do not cache) and let people tune upwards if they need to.
Please set the default to 0 for Puppet 3.7.x and beyond and let's update the docs to describe the rationale there.