AOP enhances modularity by addressing the shortcomings of traditional encapsulation mechanisms. Developers often circumvent existing modularity practices, leading to scattered code, which AOP aims to rectify by aligning with real-world software development practices. The insights from ethnographic studies reveal that true modularity must reflect how programmers actually work, rather than just the theoretical ideals of programming languages.