grunt.log/file/util etc all rely on global state (verbose mode, dry run, etc).  When grunt is invoked, it is passed directly into plugins so that their usage of these utilities respects those settings.  I'm working to decouple these things but it's difficult.  Basically, this is an architectural wart that we are stuck with for now.