Hi,
For all iBGP neighbors you would usually use "next-hop-self" unless there is a specific reason not to. The main thing to pay attention to is the fact, that a BGP router cannot install a prefix in the routing table, if the BGP next hop is not reachable. The proper approach is to either use "next-hop-self" to have BGP speakers loopbacks as next hop, or to redistribute the links to eBGP peers into your IGP. The latter might mean to have external addresses in your IGP, if the addresses belong to your peering AS.
In your network the next-hop-self command would not be needed on R5 unless it has an eBGP neighbor. The reason is, that every router inserting new networks into the BGP table - through redistribution or the "network" statement - will set itself to be the next hop anyhow.
Hope this helps! Please rate all posts.
Regards, Martin