Improve return copy elision for some variant return types