The following definition sounds incorrect to me:
An operator is a processing unit that is invoked/executed on scene data by the window manager.
Are operations only run on scene data? All of the 3D View and interface operators change properties of Screen data, not Scene for instance. Even blend(lib) data wouldn't be quite right, as you can write operators that only report something and not change anything.
A user action starts by device input of the user and the window manager dispatches these and events and starts operations - so by the window manager is correct. However, this is very technical and rather an implementation detail than a useful information for the end-user.