There is definitely a consistency issue here. At first, calendar was meant to not be multi-instantiated, thus there would only be one calendar package for the whole system, multi-mounted.
But that's not how things currently work. It looks like there is a bit of work here to clean this up and do something consistent - my bad for not finding a full solution to this. The issue to resolve is that calendars is kind of a multi-instance package within itself with the idea of multiple calendars.
But putting that aside for a second: since the current system is creating private calendars for each calendar package, at the very least what should happen is that you are only selecting the private calendar for the package you are in - thus adding a package constraint in your where clause.
(Rafael: you're still failing because the two private calendars are already created, so changing the creation condition won't fix your issue).