_load_local_tzinfo() loads timezone files from /usr/share/zoneinfo/posix, and uses os.walk() to list the files.
But by default os.walk doesn't follow symlinks, so if the timezone files in /usr/share/zoneinfo/posix are symlinks to other locations (which doesn't seem terribly rare), those files won't be read in.
This can result in failing to load a timezone that matches /etc/timezone.