Re: "We have moved beyond those things in programming"
Yes, they are ... different (better - that is a big stretch).
For that library that does foo, in 12m time you can reasonably expect it to still do foo, otherwise you would not have an external dependancy.
It is cultural (in programming) that if you change something - like adding a warplane option that breaks earlier versions, the old version is still there somewhere.
This is not the case with a document.
This document may be deleted or moved or updated, it may have been the lyrics of 'everlong' last year but this year it is 'times like these' and that might or might not be right for you.
If two people link to that one document it will probably be wrong for one of them.
Indeed two people will probably be fighting over foo.
To make this work you will need to do what uber wants to force american pedestrians to do - only cross at crossings and look both ways (and at all the possible points of impact) or get run over.
whereas programmers will seek foo - the fruits of a good icon - in the obvs place