There's already a protected property, ClicksDisabled, inherited from TButtonControl. Its name is a bit misleading: clicks are working, but only the OnClick event is suppressed. However, it is too radical because OnClick does not fire now even when a real user-click occured - see attachment. But I think this could be adjusted.
In my opinion, OnChange should fire always when Checked changes. And OnClick should fire only when the user clicked. In addition,there should be a Delphi-compatible mode in which OnClick fires always.
Did not check it, but TRadiobutton probably has the same issues, as well as TToggleBox (they all inherit from TButtonControl)
Not sure about a Modified property. I'd expect to see this in Edit-like controls (TEdit, TMemo, TSynEdit), but not in every user-input-control. Following your argument, TRadiobutton, TRadioGroup, TCheckGroup, TListbox, TCombobox, TListView, TTreeView, TSpeedButton, TToolButton etc. should have it too - a LOT of work.