I'm sure how to solve this, but here's what I'm trying:
1. Domain Driven Design and the Functional Architecture support grouping code by operation, not by entity. I think this would go a long way to preventing this sort of issue, though you still need to share code somehow, so..