Yes, you're right. Sorry; I didn't quite understand your first comment, so I got confused about what you were saying.
The script doesn't take into account caches with more than one of the required attributes. I think most challenges don't care if you get multiple attributes on a single cache, but it would be significantly harder to implement if we have to take overlap into account.
The cacheWithAttribute array wouldn't really help much -- it's just a list of all the caches that have a given attribute. I guess the script could try to cross-reference all of these to see if there is overlap...
I guess Team Karlsen should decide if this checker meets their purpose. If not, it can be deleted.