I love the analogy with cooking recipes in another comment. Math papers are like recipe books, deliberately devoid of their social context. The same recipe may mean different things to different cooks, even contradictory! Having a clean, neutral description of the recipe allows both cooks to safely refer to the exact same recipe, without endorsing contexts that they may find odious.
I agree that knowing the context in which a recipe was created, and the contexts where it has been used, is very useful. But it would be extremely annoying to have this explanation interleaved with the recipe description itself. This information is best kept separate. Then, at the beginning of the recipe you can have a list of links to cooks who have written different things about it.
Plenty of physics papers end up being useful in ways the authors never conceived. I don't think the authors writing down their best guess of the importance of their results, prevents others from using the results or techniques in alternate ways. In fact, I frequently see this happening.
But the authors writing down their best guess of the importance of their results helps others judge the minimum importance of the results, and decide whether they want to read the paper in the first place.
In many cases it will be unlikely that the authors even know the importance of the results. Forcing them to come up with an explanation would be useless at best, and an unbearable burden at worst (e.g., when a student has proved a theorem proposed by his advisor).
There are mathematical reviews, where mathematicians with a higher-level view on the field point to particular papers and explain their importance. Also, many journals have an editorial column that explains the papers on each issue.
The abstraction capabilities in modern c++ made it more fun and allowed me to condense programs in totally unexpected ways. More abstract code was simpler and sometimes easier to understand.
But after a while (usually my version 4 or 5) if I abstracted it too much (Templatized it, made work for Unicode or char types) etc. the complexity would shoot up again. It became incomprehensible even to me even though I had written it. I knew it worked because it gave the same result but it was no longer anchored/rooted in anything real.
There is a zone of usefulness that is between the completely abstract and the concrete. Physics lives in this zone…it uses mathematics but they don’t feel the need to generalize to N dimensions or to assume the constants of nature are variable—unless they have to.
This is why all good descriptions of mathematics start by showing a concrete problem they want to solve. Gauss invented the FFT algorithm to simplify his calculations of the orbit of Ceres. He had the numbers in front of him and tried to reduce his computational workload by exploiting a repeated pattern in the computations. Teaching the FFT as a fait acompli and showing asteroid orbit as a sample application is ass backwards.
(A toy example of the 'square' thing - imagine you have to make 10,000 widgets for 1 dollar each. Making them all by hand for $1 without optimizing the process would be inefficient. So would spending $9,999 to build a machine which could make widgets for $0.0001. But spending $100 to optimize production so you can make the widgets for $0.01 each is a massive win ($200 cost vs. $10,000 for the other alternatives.)
You are absolutely right, context is king.