I don't think there's any reason to limit the use of destination=* to *_link ways. It's useful for all kinds of junction topologies, not just simple motorway exits. There is a difference between routing (a mathematical exercise) and navigation - which means giving useful, relevant instructions to a human. Normal practice here (NL) is that destination and destination:ref reflect the signage (irrespective of what "seems logical"). In some places the junction number is prominent and important for navigation (e.g. the UK - you might say "turn off at junction 24") and in other places the junction number may not be so relevant. By keeping the tagging distinct you allow the navigator the freedom to present the information in different ways.