You are confusing a couple of concepts. In your example:
edge -R1 - R2 - R3 - R4 -edge
You could have an iBGP problem because if all the routers run iBGP then each router would need an iBGP connection (at least logical) with every other router. That does not mean that each router must be physically connected to every other router, but it does mean you need an IGP or static routes so that each router knows how to reach every other router. For example R1 knows how to reach the R2 directly connected interface, but it would not know how to reach an R2 loopback interface or R3 and R4 without some help from an IGP or static routes.
Even if you run iBGP on all the routers, you still want an IGP so that each router knows how to reach all the other routers because an iBGP learned route cannot be advertised to another iBGP speaker. For example, with iBGP, R3 can tell R2 about its link to R4, but R2 cannot tell R1 about that link because it was learned by R2 via iBGP. If you run an IGP, then the IGP can tell each router about all the routes in the AS.
Whether or not to run iBGP on all the internal router or use a tunnel between the edge routers really depends on your reason for the eBGP routes. If you do not distribute the eBGP-learned routes into your IGP (trying to configure static routes, except a default route, would really be impossible with the Internet routing table), then R2 and R3 have no idea where to send externally-destined traffic.
If you are simply needing redundant Internet connections and advertising your internal networks to the neighbor ASes via BGP, then you probably do not need to run iBGP or have a tunnel between the edge routers. Simply advertising default routes inside your AS would probably suffice, but you could redistribute eBGP learned routes into your IGP (not recommended unless you have a good reason for it)..
If your AS wants to choose the best exit router, then you could redistribute the eBGP-learned routes into the IGP (probably not a good idea, but it can be done), or you could run iBGP on all the routers.
In that case of a transit AS (traffic is expected to enter on one side of the AS and exit on the other side of the AS), then, yes, you probably do want iBGP on all the routers in your AS, or you want a tunnel between the edge routers if you do not want to burden the internal routers with the full Internet routing table.