I would argue performance-noexcept-move-constructor should always be on. Move constructors should almost always be noexcept since they typically just move pointers around and don't do allocations normally.

[deleted]

eh, depends. for instance think about a small_vector or small_string

True, in that case it should just adopt the noexcept status of the object it holds.