GPL does not prevent users from distributing modifications: it simply requires them to give _their_ users the same freedom if they do so. The AGPL further updates this for the cloud era.
This is the part where the (A)GPL constrains the rights of its users. Requiring user A to give user B more liberal licensing is constraining the rights of A for the benefit of B. Even if you think it's the "right" way, it's still a constraint.