I am not really sure, but it seems like OP is missing proper scope/target-scope in routes on rb1.
For what it costs, you can try seeing what happens with (adapted to your actual configuration):
/ip route
add check-gateway=ping comment="primary route" distance=1 gateway=8.8.8.8 scope=10 target-scope=12
add comment="validate primary route" distance=1 dst-address=8.8.8.8/32 gateway=47.223.56.1 scope=10 target-scope=11
add comment="secondary route" distance=2 gateway=172.16.44.2
But I am not really understanding the setup of rb2 in the OP, and I doubt that you have exactly the same one.
When the main route (via 47.223.56.1) on rb1 fails, the one going through 172.16.44.2 comes into effect, OK.
Then on rb2 there is a route with distance1 for 8.8.8.8/32 via 172.16.44.1 and a general (omitted 0.0.0.0/0) one with distance 3 still via 172.16.44.1.
What is the route dynamically added with distance 2?
And what it is needed for?
In any case, you should post your configuration (anonymized) for review, follow the steps here:
http://forum.mikrotik.com/t/forum-rules/173010/1