Even though I wasn't too aware of this shared memory thing, I have to say it never caused problems in practice (that I know of...).
I did a function that prints variables that points to the same place, just for fun (it's really cool you can do that easily): julia> x = rand(10,10); julia> y = vec(x); julia> whosShared() y <-> x function whosShared() m = Main n = Array(String,0) pts = Array(Ptr{Float64},0) for v in names(m) if isdefined(m,v) && typeof(eval(m,v)) <: Array push!(n,string(v)) push!(pts, pointer(eval(m,v))) end end for i=1:length(n) for j=(i+1):length(n) if pts[i] == pts[j] println( string( n[i], " <-> ", n[j] ) ) end end end end