Awesome video, as well as work that you're doing. Solution two seems to be the most natural to me. However it's worth to ask how much does the creation of new objects will impact the performance in a huge assembly.
New AssemblyLink wouldn't be a performance hit. They would be better performance wise than the first solution (copy on changed links). It's just that it is adding complexity to the software by adding one more type of objects.