I have noticed an on-going prevalence of disabled controls upon component load (clicking on a button to load data, only to find all controls are then disabled). As a usability enthusiast, flow has always played a fundamental part in my mind - it's inherently enjoyable to the end-user.
Some reasons I have thought of:
1. Database statement submission
Counter-argument: Commit rollbacks are most certainly possible
2. Inherent race conditions
Counter-argument: Concurrent defensive coding (synchronization, mutual exclusion locks) should prevent this
3. Locking in the end-user
Counter-argument: There should be little to no restrictions on the behaviour of the user from a usability perspective
Why does this UI disabling exist and how does it provide ergonomic gain to the user?