If you use it just in the messages coming from die or warn, it's confusing, but not critical. Basing the program flow on the value would be a critical problem, though:
... die $! if $!; # Can stop your program for no real reason.