1. I don't have a good solution for this. Presumably, most of the id changes happen because users split osm ways to incorporate more/differentiated attributes. If if you had perfect mapping between which old ids correspond to which list of new ids, it still wouldn't be easy to figure how a patch should be applied (i.e. should a change in lane number be applied to all pieces or only some of them)? And maybe the patch isn't needed anymore because the newer data resolved the problem you fixed manually before.
You could use netdiff option --write-shapes to visuallize the modified elements in the newer network (independent of their ids) and redo them if still applicable.
I'm not sure what you mean by "made the diff really cluttered". Presumably, the diff is computed between the old and the edited network and so isn't affected by any id changes which the new network brings. (only it's applicability should be impacted if you try to use it with a new network).
2. One possible reason is a diff which leaves things to be computed by netconvert (i.e. if a diff changes edges but doesn't specify connections, then they must be re-guessed). In this case, a newer version of netconvert could do things differently form an older version. But apart from that it may well be a big in netdiff or even netconvert. Please provide a minimal problem example for replication!
regards,
Jakob