[close a question that is] no longer being on-topic
The Stack Exchange network's policy is clear: you are not allowed to ask off-topic questions. If a question was asked years ago and it was on topic, then don't molest it. (This assumes it's not close-able for other reasons.)
The Stack Exchange network also lacks a clear policy on what to do with questions that become off-topic over time due to changing goals or rules. Any attempts to answer that question is just bike shedding.
My personal feeling (i.e., a bikeshed moment) is leave them alone, because they were on-topic when asked. Otherwise, the community would have moved against it for being off-topic when it was asked. So don't penalize the asker because norms have changed.
A related question is How can we distinguish official policies and procedures from opinions?How can we distinguish official policies and procedures from opinions? As far as I know, all sites in the Stack Exchange network suffer it.