In scalar context, grep returns the number of times the expression was true. Counting things is an extremely common usage of grep. And in "boolean context" you still have the issue of when grep's code block is used for side effects.
Comment on Re: Shortcutting grep in boolean context