After yet more discussions (see original below). The decision was reverted in
PUP-4094. The decision was to use 0 (no caching) as this provides the least surprising effect when using puppet "out of the box".
After a lot of discussion (see
PUP-2639) we agreed that the correct default for puppet's environment caching is unlimited. This is because it is the correct thing to do in a production system where deployments of new code should be a controlled affair. Require the master to reload itself for a code deploy also gets around any problems it might have for any loaded ruby code.