It needs to change lines (clear the part of it, add new line). If all the line symbols were saved on Stack these manipulations could be impossible. For ex, in C all the lines are static and it means that line size can't be increased in runtime as all the content kept on Stack. Here
you'll find detailed Swift lines analysis and about copy-on-write.