I found the problem. I recently switched a security object from a singleton to scoped. A collection inside that object is, of course, now NULL whereas before it was not. The system never lies, it's just not good at telling you the full details of a problem sometimes.
Once I loaded the collection, everything works fine. I apologize for my horrible example code that should have shown the full markup. That way, some of you would have surely noticed the possibility of a problem.
Thanks, MrC, you taught me something today.