So it looks like edit tools are using the putValue() method to set the preference. putValue sets the current value of the preference without sending a property change event. setValue() will do the same thing but fire the change event.
I have run some test and cant seem to see any issue with using setValue over putValue. Paul can you test this using both the ToolOptionContribution, Command Shift S and the preference page to change the preference.