I understand that routes learnt via iBGP can't be redistributed to other iBGP peers to avoid loops, but then why is a iBGP connection between two routers that don't have eBGP connections needed? They won't distribute anything, right?
...why is a iBGP connection between two routers that don't have eBGP connections needed? They won't distribute anything, right?
Not quite right. It's not that two routers connected via iBGP cannot learn any prefixes from each other.
Suppose you have two WAN routers in your AS, A and B, both connected to separate WAN ASes via eBGP, and connected together via iBGP. Router A cannot learn prefixes from Router B about which Router B learned from other iBGP speakers in your AS, but it can learn about prefixes which Router B learned about from eBGP or an IGP.
Any prefixes which Router A learns about through iBGP from Router B cannot be passed on to any other iBGP speakers because those prefixes could be sent back to Router B, directly or indirectly. That's the reason for needing a full mesh or a mitigation such as route reflectors or confederations; other iBGP speakers will need to learn the prefixes which Router B will share with other iBGP speaker directly from Router B since Router A is unable to pass those prefixes on.