There is no subroutine foo() defined in my example, so Devel::Cover has no way of knowing to check to see if it's covered. My example was not intended to show the effects of an undefined subroutine that's never called. It was to show how simply running one bit of code to check for subroutine calls is not going to catch everything; you have to try and touch every bit of code in order to successfully do that.
I get the feeling you're leading me around by the nose in order to make some point. If you have a point to make, please make it so we can discuss it.