A variant to consider.
- When the page first loads, permalinks are all there as now, but with aria-hidden="true".
- There is a new link button alongside the other buttons (search, calculator, embed this page, toggle dark mode). Clicking this button toggles aria-hidden="true" and also changes CSS so that the individual link icons all become visible (but perhaps faded until hover, touch, or click).
But I would go a bit further. With this (as well as the status quo) you can still tab to permalinks at any time. Because the permalinks come later in the DOM than the thing they link to, tabbing is visually jerky. Like if there is a tall paragraph with several tabbable waypoints, you tab through those waypoints and then at the end, are brought all the way back to the top where that paragraph's permalink icon is.
So I would add that when the page loads, all permalinks have tabindex="0". And the button that toggles aria-hidden="true" on all of the permalinks would also toggle tabindex="0" and make the permalinks become tabbable.
Lastly, consider the experience of the blind user who wanted to use a permalink. They went up to the top nav and used a button to grant access to permalinks. Then they went and got the one they wanted. Most of the time, they don't need permalinks to remain accessible at this point. So upon using a permalink, everything reverts to aria-hidden="true" and tabindex="0", as well as the CSS reverting.