Don, I agree completely that adding complexity for no reasonable advantage is very not good, especially concerning acs_objects and permissions. My suggestion of having multiple context hierarchies is really just an consequence of my thinking that a generic object hierarchy table would, overall, benefit the toolkit. Any time a developer wishes to establish a certain hierarchy (parent-child, security context, etc.) they might be able to do it by adding a new hierarchy type and using a generic table. I have never had a problem with the currently available setup, but many times developers have used the context_id for something besides the security context.
From what I am imagining, when/if you move context_id out of acs_objects, that move will not in itself decrease the performance of the permissions system, since it will just substitute the join table. But maybe it will be moving somewhere else where it might increase performance, so the added complexity would not be worth the time and performance issues.