That of course only solves for index.php – here’s a more detailed look at the problem but it’s not exactly what’s wrong.
I Just found out that the order of parameters to RewriteCond matters.
RewriteCond -d /realpath/htdocs/blogs/%{1}
is different to
RewriteCond /realpath/htdocs/blogs/%{1} -d
Putting in the former seems to have stopped all loops.