Access callback evaluated on every page
Something just dawned on me...if you have a menu on the page that links to the '/foo' page, Drupal will query the access callback to find out if the menu link can be shown. 

Since you're not providing a type in your menu item, it will default to MENU_NORMAL_ITEM which will place it in the site's Navigation menu.

I would guess that's what's causing the function to be run at least once on every front end page, but not for the admin pages (where you probably won't have the same menus).

It's definitely what was causing the issue on the test installation I just set up for this.