Давайте поразмыслим логически. Для структуры необходимо записать данные на стек, скопировать и вернуть, удалить стек. Для класса необходимо выделить место в памяти, записать ссылку на данные на стек, скопировать и вернуть ссылку, удалить стек, а потом ещё и напрячь сборщик мусора.
Вопрос: что проще? Скопировать данные или скопировать ссылку+произвести множество манипуляций с памятью и сборкой мусора? Безусловно, когда размер ссылки сравним с размером данных (как раз случай кортежей), то проще всё это сделать через стек, совершая на порядок меньше операций. Ну а когда размер данных много больше самой ссылки, то тут, очевидно, надо использовать классы.
p.s. Чистая логика без каких-либо углублений в программирование и .Net.