is this the explanation of what happened to 18h and why Zen3 is being called 19h?
Not really...
Family 18h is the original Zen family.
K18.0 => Zen1
K18.1 => Zen2
K18.2 => Zen3
etc.
Indicating bigger vector-widths. Zen1 = 128-bit FMAs, Zen2 = 256-bit FMAs, Zen3 = 512-bit FMAs.
I believe the switch to 17h and 19h occurred before the launch of Zen and Zen2 and Hygon.
The shift to 17h brought improvements to Zen/Zen2. The shift to 19h brought improvements to Zen3/Zen4.
19h is based on another ARM core. Zen is derived from K12(ARMv8) and Zen3 is derived from an unnamed core(ARMv8.3+SVE). This is also where the SMT4 part technically comes from as it is derived from Vulcan(JK(K7-K8 then @ Apple) for K12/BK(BC-JG then @ Broadcom) for the unnamed core). Given that, the core of 19h should at least have a unified scheduler; inline with Intel's Core architectures and VIA's cores. However, the big split is the issue ports of FPU is more like VIA's core design rather than Broadcom Vulcan/Intel Core.
In general => 17h execution core != 19h execution core.
Retire should be different.
Mappers should be different.
Schedulers should be different.
Issue width might be the same, but execution units will be different.
etc.
If the above isn't the case, it isn't a real Zen3 core. Rather, just a Zen2+ core being fitted into a Zen3 launch. Basically, being Bulldozer to Piledriver, which aren't physically the same cores between Orochi-B0/Orochi-C0.