It's not - well, not exactly - a bug, but rather the consequence of various inconsistencies in how raw materials have been integrated with different game mechanics over the years.
There are three separate grading schemes in use for elements.
There is the
geological grading system, introduced in 2.0, which has one "very rare" (or G4), two "rare" (or G3), and three "common" (or G2) elements associated with each planet (plus the five "very common", if it's not a metal-rich world). In 2.0 this was the grading scheme used on the interface. This grading scheme is the relevant one when prospecting surface sites - and only G4 materials on this scheme will appear in pure form from needle crystals.
(There are also the three "laser mining only" elements - Rhenium, Lead and Boron - introduced in 3.0, which don't fit into this scheme at all)
There is the
engineer grading system, introduced in 2.1 and regularised in 2.1.05, which places materials into blueprint costs. Unlike the others, this is a five grade system to match that used for data and manufactured, with G1 equal to the geological "very common", G2 containing most but not all of the "common", G3 being a mix of "common" and "rare", G4 a mix of "rare" and "very rare", and G5 the remaining "very rare". From 2.1, this grading scheme was displayed on in-game interfaces instead. (The new 3.0 elements appear in no blueprints so their position in this scheme is unknown)
The introduction of material traders introduced the
economic grading system in 3.0, which like the geological grading system, only has four grades - but unlike the geological grading system, has an equal number of elements at each grade, to fit into a rectangle. From 3.0, the in-game interfaces were updated to display this grading scheme.
The economic and geological grading schemes are very similar - with Selenium being the only mainstream place where they differ.
So: Selenium is G2 geological, G3 engineer, and G4 economic. As a G2 geological it won't appear from needle crystals (but this is *good* for players because it means you can get two G4 economic materials from any Selenium-containing world, and "beat the system").
Zirconium is G2 geological, G3 engineer, and G2 economic. I'm not sure why you think it's G4 as none of the schemes put it there.
You might be wondering why we have three different systems. In 2.1, when engineers rolled out, the raw grading system was extended to five grades. In the first Beta, this was discovered to have scrambled the previously-known material compositions of planets. In those days, with the only way to prospect a planet being to get an SRV and shoot some rocks (Detailed Surface Scanner prospecting wouldn't come until 2.2) ... and the FSD Boost materials being very valuable to pre-engineering explorers ... this got a bunch of instant bug reports. To avoid making a massive amount of community exploration effort obsolete, Frontier separated the engineer worth of a rock from its geological rarity.
At this time, of course, no-one had even considered material traders, or that they might require an equal number of materials at each level. So when 3.0 introduced them, Frontier had to make them pay *way* over the odds for Selenium, and introduce 3 space-only materials, to get the raw materials to fit into a rectangle with minimum difference to the earlier schemes. Some of the prototype material trader schemes in early 3.0 betas were a lot more of a mess - this one is probably the best which can be done without completely trashing all 3.0 community material prospecting ... or rewriting a lot of engineering recipes.
So ... not exactly a bug, but certainly a good example of the risks of iterative design