There is a distinction between being able to do a full replication and actually doing it. If a forge is unable to copy some elements (issues, labels, milestones, assets, tags, commits, …) from another forge, it won’t be able to act on it and this will be problematic for federation. I think it is reasonable to begin with something that is inefficient but fully functional. And worry about optimizing later to minimize the CPU/storage/bandwidth.
Does that make sense?