Ok, I'm trying to reconcile Jameson's suggestion to generally assume an overlap, and Tim's to expect no overlap with arrays if pointer(a) != pointer(b). Doesn't this imply that pointer(input) == pointer(output) a typical array function? With subarray's I fully expect sharing memory, just by the type of the output. I guess I had hoped that vec would have returned an array-view type or sub-array type to indicate what is happening.
Side note: I've been preaching Julia to everyone I meet. I usually start the sermon with "when you start using Julia it will initially behave/feel very much like R or Matlab, but then when you need the full power of a fast modern language it is there for you". Can I really say the first part of the sermon if I need to tell them to generally expect outputs sharing memory with inputs (which, to my knowledge, is very different from how matlab and R behave)? I hope I'm not sounding critical (cuz I love the language). Mainly, I want to really understand how things work so I can better sell it to students and colleagues. Cheers, Ethan