The challenges are primarially with CAD modeling and compatibility. The culture now is to share an STL file, which is fine as long as you don't want anyone to be able to easily make changes. If people start sharing the original files in addition to the exported .stl files, we'd be in a much better place without any advances in software or hardware!
The other lack of sharing is with the printer settings. Maybe a part should be printed with 0% infill, or 100% or some number in between for a specific model. Or perhaps dupports are needed, should be omitted, or are only needed in certain pages.
None of this information is contained in the STL files nor the original model formats. These are printer settings. Unfortunately each slicer has its own format. So while people can share CURA settings, it won't help people using the Prussa slicer. Having a standard that can be easily imported would go a long way to simplifying printing and allowing easier collaboration.
If using the same slicing software as the creator, and if the creator shares the exported settings, this doesn't require any further advances in technology either. It's just a matter of culture. However, technical changes could make it easier for people.
The real problem is modeling. There are many options for CAD modeling software, but they all have a learning curve. It's difficult for most people to accurately describe a 3D object. We are used to dealing with humans where they usually know what we meant even if it's not what we said.