You could try the artefact cleaner. Note that it is a dangerous module and you should use it only on a copy of the database. Also, sometimes it tries to drop things that don’t exist. Bugfixes are welcome, as I have little to no time for its maintenance.
Deleting old _Versions will eliminate them from history but I can’t think of any other side effects. You would have to track and delete from other _Versions tables if joins are involved. Note that archived pages exist only in the _Versions tables, so keep that in mind.
As a side note, dev/build deletes orphaned versions automatically.
I would add that we’ve never bothered deleting old versions. Is there a particular problem you’re trying to address?