Maybe I'm wrong but using a script it still looks much more easy way to handle it. ... Why this simple method is not good?
The above is quite in contrast with what you've stated earlier:
Only I wouldn't be able to script this in Mikrotik environment so need to find out if something similar is already coded and I may edit it to my scenario.
So my understanding was you suffer from scriptophobia, like many other forum members :)
But a more important reason is that coding any algorithms is always prone to errors, so you have to thoroughly test anything you write, and that processing the script introduces additional delay. But aside from this, if you don't mind treating the WAN and its serving router as a single block in the redundancy scheme, there's nothing wrong about it. And in every aspect except creation and debugging of the script, it is definitely simpler to set up than the one with policy routing and transparency monitoring using recursive next-hop search.
In fact, the only scripting part here is that
on-up of the netwatch raises the VRRP priority and
on-down decreases it. But this is only true if there is a single netwatch item pinging a single host in the internet; if you want to monitor multiple internet hosts, you have to check the state of the other netwatch(es) before changing the VRRP priority.
The advantage of the way I suggest is that it provides not only redundancy but also throughput improvement at WAN side plus no need to reconfigure the VRRP priorities depending on WAN state. If the WAN fails for any reason outside the router whilst the router itself remains fine, the VRRP doesn't need to switch over, it's just that the packets have to go through both routers.
One more point, you don't necessarily need to have just a single VRRP gateway on the LAN. If you create two VRRP addresses in the same subnet, with different priority on each router, one of them can be active at router A and the other one at router B when both are alive. So some LAN hosts may use router A and other may use router B while both work normally, and only use the other router if their preferred one dies. This reduces the impact of the failover on existing connections.