ベクトルの * はコピーしないからじゃないの。
内部的には

>>> a = [0] * 5
>>> L = [a] * 3

という評価がなされてるのでしょう。

ところでなんでsage進行?