At 3:24 - why doesn't other just point to the container itself, i.e. an indirect reference to the underlying buffer pointer? Then if you do an .add you don't have to worry about the underlying buffer being moved to another location in memory?
Assuming I understand your question correctly: This implies another indirection and a mechanism to clean up "other" when it's not used anymore. C# uses this solution. So yes, it's possible but then you miss the "move optimizations".
Nim is innovating in a way I haven't seen in any other language. This is incredible. One suggestion. Could you please add an annotation for whether the reference count for a particular class is atomic or not? I would imagine it needs to be atomic for some classes but others could avoid the overhead.
To promote Nim the community should develop and release a good open source soft or a game. Maybe a video editor or something most people use. When people know that software is made with Nim, it would help to boost Nim reputation.