I am not aware of any way to implement "Solution 2" where everything is done on the same router, because I believe doing so requires VRF
That article just uses a mystical "twice nat" name for dst-natting the requests coming from Site A subnet X to subnet Y used on Site A as an alias of Site B subnet X, and then src-nating those requests to subnet Z used as an alias for Site A subnet X at Site B. If all connections are initiated from Site A, the following rules are sufficient:
chain=dstnat action=netmap dst-address=Y.Y.Y.0/24 to-addresses=X.X.X.0/24
chain=srcnat action=netmap src-address=X.X.X.0/24 to-addresses=Z.Z.Z.0/24
So VRF is not necessary, but policy routing is, as you have to say that packets whose destination address was from Y before the dst-nat operation have to be routed via the VPN even though at the time of routing their destination address is from X. Mangle rules assigning
routing-mark values depending on the Y value and additional routing tables, one per each Site B, are enough for that.
At Site B, you just add a route to Z.Z.Z.0/24 via the VPN tunnel.
In addition to all the usual issues associated with use of NAT, you also need a distinct Y subnet for each Site B.
If connections need to be initiated also from Site B towards responders on Site A, you either need a distinct Z subnet for each Site B as well or you must use some other criteria, such as the name of a virtual interface representing the tunnel to Site B on Site A, to choose the appropriate netmap rule changing source address X to the proper Y if you want the responders on Site A to be able to unambiguously identify the initiators. And even if you don't need this, you have to use connection marks to allow the responses to be routed properly.
if someone knows how to do this on MikroTik please speak up and point to the relevant documentation.
Just for the sake of completeness, as use of VRF is not necessary in the scope of this topic - if we leave aside a "hairpin cable" connecting two physical interfaces of the same router, I don't know any direct way to leak subnets between VRFs on the same physical router, but you can use a hairpin tunnel whose one end is a member interface of VRF 1 and the other end is a member interface of VRF 2. The only kinds of tunnels that can be used in hairpin mode in RouterOS are IPIP and GRE ones as these use no IDs that allow to create multiple tunnels between the same two devices, so RouterOS has nothing to check for uniqueness when you add the second endpoint of the tunnel. Such a hairpin tunnel is useful also in other niche scenarios.