I've ripped that from the cake core, so I'd hope it works :) But having a second look at it, it could probably be refactored a little more compact into a single method.

Not sure what exactly you think might backfire, the loop just checks whether there is any counter caching setup at all to avoid unnecessary queries, the find results should then contain keys for all associations... not sure if a test for multiple counters might be necessary, shouldn't this be implicitly covered by the cake core tests?