Consider this code:
Puppet 3.5.0 sets $v to undef. Earlier versions set $v to the empty string, I believe. (Possibly that isn't true. Possibly it is instead some comparison changes that bites me.)
What happens when you look up a non-existing key in a hash should be documented on http://docs.puppetlabs.com/puppet/latest/reference/lang_datatypes.html#hashes.
If I'm correct, and this was a change in behavior in Puppet 3.5.0, it should be mentioned in the release note.