All values omitted in a modify request for a bucket is reset to their default value. Most users won't find it natural to first go get the bucket properties before toggling their value before setting it (if they want to lets say just enable flush for a bucket).
As a user I would expect to be able to do something like this (by using the php api):
$cb = new CouchbaseClusterManager("192.168.0.97", "Administrator", "asdasd");
$cb->modifyBucket("default", array("enable flush" => 1));
Instead we force the user to grab the properties first, and then send the entire set back with their modification.
In theory we could do this "under the cover" in the API's, but that will add complexity in the clients (if they're running in an async environment etc). Sending the full config back and forth is just unneeded overhead.