Querying layout results takes one line of code on iOS, Android, Qt, and Flutter. On the web, it requires triggering a full-page reflow. This isn't because browser engineers are incompetent. CSS made a deliberate architectural choice in 1994 toward declarative layout, which has a higher ceiling but hides intermediate state. Facebook paid hundreds of millions of dollars in 2012 for not understanding this trade-off. SwiftUI and Jetpack Compose prove that declarative and observable can coexist through proper layering. The lesson applies to all system design: good abstractions let you choose which layer to work at; bad abstractions glue all layers together and leave you no choice.