Having thought about it some, I think this is expected behavior. Generally metadata is preserved when using an "update" operation on a collection (assoc, dissoc, conj, disj). In this case, subvec is conceptually creating a new collection that is a subset of the old one (select-keys is maybe another in this category). Because it is a new collection, we would not expect it to get a copy of the metadata from the original.