In “the old days” nothing technical prevented you from creating a full mesh iBGP. However, BGP was a protocol that was generally available on more expensive platforms, unlike today. So it wasn’t common to have all nodes within your AS participate in iBGP, but just the edge nodes that connect to other ASs. Now that it is common, the best practice is to either keep synchronization disabled, or redistribute the prefix into the AS via an IGP.
I hope this has been helpful!