All the `Visit` methods are [Queries](http://en.wikipedia.org/wiki/Command%E2%80%93query_separation), so they have no side-effects. Thus, from a perspective of Basic Correctness, we don't care whether they were called once or numerous times.

The primary purpose of unit testing is to verify the Basic Correctness of the system.

We may also care about other aspects of a system, such as performance, responsiveness, etc., but these 'ilities' are often notoriously difficult to unit test.

Some of these concerns can be captured by higher-level testing (e.g. stress testing), but others are perhaps best dealt with in reviews.

We *would* care if an implementation were to invoke other `Visit` methods willy-nilly, only to throw away the results, but the reason we care isn't because of correctness, but because of performance.

HTH