Compatibility mode re-runs all checks to see if a site is in compatibility mode every time it is called. I would consider this a global setting where once determined it doesn't need to run again.
This should probably be changed to store the resulting value of the filter as a protected value in Nicholas, which is then used directly in subsequent calls to the method. This should keep the site from running a potentially expensive filter call every time this method is called.