I can see your point.
I've always tried to throw something kind of error in my functions if things don't go right. I think a die or an error code is good.
I probably forget often enough, I haven't really used subs/functions since I started in Perl. I need to get it down. I guess the funny way of passing variables into them kind of turned me off. And since I don't do anything too complex (most of what I do is fairly procedural) I haven't had a real need for it.