Doing things at CHECK time limits your module to being used during the initial compile of a script. People like to be able to require or eval "use" modules later than that.
That's fair enough I suppose. Ideally perl would treat CHECK and INIT blocks as a queue which can be filled up during any compile and are emptied out again after the compile, rather than giving "too late for INIT" messages. Perl 6 perhaps.