Ответ 1
Об этом я расскажу в сообщении в блоге "О памяти и строках" . Он специфичен для реализации, но для Microsoft.NET CLR v4, CLR x86 имеет служебные расходы на один объект из 8 байтов, а CLR x64 имеет служебные расходы на один объект из 16 байтов.
Однако есть минимальные размеры 12 и 24 байта соответственно - просто вы получите первые 4 или 8 байтов "бесплатно", когда начнете хранить полезную информацию:)
(Подробнее см. в блоге).