I think the basic answer is that in Julia, essentially no API ever does an implicit copy and we do not currently have any mechanism that allows precise enough control of memory placement that some of the fancier mechanism from other languages would be required in Julia (that doesn’t mean that Julia is necessarily slower of course - the defaults are quite well optimized). As a result, it’s not really clear where this piece of documentation should go. push! isn’t really the right place, because from a julia user’s perspective, there’s no reason to expect it to do anything other than store the reference it has in the vector, because that is always julia semantics. Perhaps the best place to put this would be in the noteworthy differences section: Noteworthy Differences from other Languages · The Julia Language