MaxGraey
Это смотря какой код и язык. В Rust например все ADT (tagged unions) это туплеты [tag, value]. tag - 2 байта, value - min(8, max_sizeof(…values)) байт вроде. Конечно во многих случаях создание пары можно избежать, но в общем случае это так
понятное дело - но внутри тела функции разницы не будет