Yeah, I thought of that too. Another one - if the script gets its input via a pipe, the -t will return false. I'm sure there are more scenarios that we haven't thought of yet.
BTW, windows actually starts a shell for a perl script, so -t returns true. On FreeBSD (and other *nix, I'm sure), -t returns false for a cron job.