I saw someone "extending" an existing viewdef by simply copying the stock file into the custom folder and then modifying that copied file.
It makes sense, but I don't see that in official documentation.
Example modules/Leads/metadata/editviewdefs.php copied to custom/modules/Leads/metadata/editviewdefs.php
Is this safe/correct way of doing it?
That's the correct way to do it.
A quick reminder about future SuiteCRM upgrades and view/edit-defs.
Sometimes newer SuiteCRM versions add/edit fields to modules and the upgrade process will not upgrade your copy of those files, sometimes causing weird errors.