In practice, compartmentalizing sections of a page into declarative chunks of JS and HTML actually helps keep things really organized. When each link in a nested directive chain is completely independent of one another, it makes refactoring a problematic area much simpler. And of course all of this makes unit and functional testing much simpler.