Sorry but, even if your phrase holds a truth value, you are wrong in many levels.
die can be overriden in one way or another, and start returning something!
my $c = 'shat'; eval { $c = DBI->connect(xxx) || die } keeps the old value in $c (instead of putting undef there, like or would do), and this may not be what the user wants...
it would be nice if people grew accostumed not to mix = and ||inadvertently.
So, my $c = DBI->connect(xxx) or die is the right idiom for good reasons.