1. The answer is yes, as long as they are in a full mesh Maybe you dont see these routes in the routing table because you learn them with a better metric from an IGP protocol, but you can see them in the show ip bgp command
2. The answer is again yes. Every route has an origin and if you use the show ip bgp command then you will see in the last column where this route was originated
3. As long as the synchronization is off, the answer is yes. If you have the synchronization on then each IBGP router in order to add the EBGP route to the routing table and use it, he should know the route by an IGP. It was a common practice in old days to redistribute all the EBGP routes to the IGP protocols, but now with sync. off it is not needed
4. Because of the BGP split horizon rule, in order for loops to be avoided. If they are not in full mesh then if an IBGP router learns a network he wont propagate it to the other.
Dimitris