OK, how about this idea? If TZ='Australia/Sydney:' then use numeric abbreviations. The basic idea is to append a suffix that cannot possibly be part of a portable POSIX file name.
I guess we could, though I'm not overly enamoured with the "cannot possibly be part of a portable POSIX file name" part. We should certainly not be presuming that any such names can be used, and should not be naming zones in non-portable ways, but if someone decides to name a timezone file /path/to/EST:EDT (and it happens to work on his system) I'd prefer not to break things.
Of course, it can be documented that ':' is magic in TZ file names (or what would otherwise be a TZ file name) but it does seem a bit ugly.
Another possibility would be a separate environment variable that, if defined, would request numeric abbreviations. This has the advantage (and disadvantage) of providing for some system-level control: putting TZNUMERIC=1 (or whatever) in the system-wide startup file would buy numeric abbreviations no matter what TZ value a particular user set up (unless, of course, the user undid the TZNUMERIC). --ado