Hey @snoyter,
you are absolutely right: This is bullshit done by Strapi.
Naming something beforeUpdate even if the update already IS done (partially). 
However you can work around that…
We needed it in only some rare cases - and only via actions that are performed via REST-API so we decided to:
Create our own update-Service to use inside these controllers. Inside this update-Service we perform a find on the “to be updated”-entity.
Then we perform the update.
If you however need it to work via Strapi Admin you might need to patch-package some Strapi sources for that. 