Yes there is a public hasChanged() method, and it does clear the bHasChanged flag. this is potentially problematic. having a separate bCacheIsDirty flag makes sense (which is not visible from outside in any way). However then when is the bHasChanged flag cleared? There is actually a comment thread about this very issue
https://github.com/openframeworks/openFrameworks/pull/2053#issuecomment-18007250

I'm happy to make the changes as soon as this issue is resolved.