How setting the TZ environment variable avoids thousands of system calls
System calls in Linux are really fast.   So saving "thousands" of system calls when /etc/localtime is in cache doesn't actually save that much actual CPU time.I ran an experiment where I timed the runtime of the sample program provided in the OP, except I changed the number of calls to localtime() from ten times to a million.   I then timed the difference with and without export TZ=:/etc/localhost.    The net savings was .6 seconds.   So for a single call to localtime(3), the net savings is 0.6 microseconds.That's non-zero, but it's likely in the noise compared to everything else that your program might be doing.