I think adjusting vs. the top 10 or top 18 (or top X) is a step in the right direction, but not the best solution. For one thing, it ignores that the quality of top scorers can vary quite a bit.
Intuitively, the quality of the top scorers was likely lower during and immediately after WWII and after the first expansion, and higher towards the end of the O6 era, after the WHA merger (especially after a few years w/o expansion) and with the major exodus of overseas talent to the NHL in the '90s (which was disproportionately composed of scoring forwards).
Also, keeping X constant over time ignores the affect of additional opportunity in a league with a greater number of teams.
While I don't believe there is a 100% perfect solution to this issue, it seems best to not use the very top scorers when measuring baseline scoring. However, improvement over using league GPG is still possible. Using the tier of players that are just below the very top scorers allows for a fairer and steadier baseline, since this talent pool will vary much less than that of the very top scorers.
I would suggest some combination of the following:
1. "2nd N" or "3rd N" players, which if talent was balanced between teams, would be the second and third top scorers on their respective teams. In a 6 team league, "2nd N" would be an average of the 7th-12th top scorers in the league, while "3rd N" would be an average of the 13th-18th top scorers. In a 30 team league, "2nd N" would be the top 31st-60th top scorers, while "3rd N" would be the top 61st-90th top scorers.
2. Next tier players of a constant number. For example, always taking the average of the 13th-24th or the 19th-36th top scorers, regardless of how many teams are in the league.
The two measures could be combined arithmetically, geometrically, harmonically, or in some other manner. Exactly which tiers to use and how to combine them is somewhat subjective, but I think someone with a practiced expertise in statistics may have some additional insight into how to combine the two measures.