Having assertions makes development and debugging much easier.
The only down sides are that it's not part of the standard Perl distribution, and (maybe I'm wrong about this) if a module uses it, can the script that uses that module override the use/no Carp::Assert setting.
Assertions are a good thing: by writing them you are documenting your code and make it safer at the same time.
On top of that, you can (mostly) eliminate the performance cost of these assertions (e.g. by setting an environment variable) in your production code.
I really don't mind writing an "if DEBUG" after each assertion.