Does Julia do any of the copy-on-write tricks that other numerical packages do? I.e. when I make a copy of an array does it immediately need space for a full copy of the original?
No, there is no copy-on-write. We try to keep the behavior and performance as transparent as possible and cow is distinctly non-transparent. If you want a copy, you have to explicitly make a copy.