Good day!
It is actually still, last RouterOS (6.39.2) has this issue.
But now (i tested 6.39.2) doesn't work workaround (separete route for GW). For example, I have recursive route and I expect, what when 8.8.4.4 will be unreachable, it will reflect in ECMP route. But this is not so:
[admin@MikroTik] > ip route print detail where dst-address=1.1.1.0/24
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit
0 S dst-address=1.1.1.0/24 gateway=8.8.4.4 gateway-status=8.8.4.4 recursive via 192.168.0.1 ether2-ISP2 check-gateway=ping distance=1 scope=30 target-scope=10
[admin@MikroTik] > ping 8.8.4.4
SEQ HOST SIZE TTL TIME STATUS
0 192.168.0.1 84 64 0ms net unreachable
1 192.168.0.1 84 64 0ms net unreachable
sent=2 received=0 packet-loss=100%
[admin@MikroTik] > ip route print detail where dst-address=0.0.0.0/0
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit
0 A S dst-address=0.0.0.0/0 gateway=8.8.4.4,8.8.8.8 gateway-status=8.8.4.4 recursive via 192.168.0.1 ether2-ISP2,8.8.8.8 recursive via 10.0.0.138 ether1-ISP1 distance=1 scope=30 target-scope=10
As we see, 8.8.4.4 unreacheble, but "ip route print detail" doesn't show "gateway-status=8.8.4.4
unreachable", it look as "gateway-status=8.8.4.4
recursive via 192.168.0.1"