La risposta è molto semplice; il tuo ragionamento sarebbe corretto se avessi dichiarato due variabili indipendenti ma nel tuo codice hai definito una struttura ciò implica che il frmk deve trattarlo in maniera "particolare", ovvero deve aver byte a disposizione per capire che si tratta di una struttura;
i tipi strutturati sono supportati da quasi tutti i linguaggi e la loro dimensione in termini di byte necessari per la relativa allocazione varia in funzione di questi (byte necessari per gli item della struttura (data dalla somma dei byte necessari a gestire i singoli item), + bute necessari per gestire la struttura); nel nostro caso i byte aggiuntivi sono quelli necessari a dot net per capire che il tipo di dato con cui stai lavorando è una struttura (ed è in dipendenza del frmk ma non del linguaggio con cui sviluppi data l'interoperabilità della piattaforma di sviluppo); infine tieni conto che il frmk consente di dichiarare strutture di codice (routine) all'interno di una struttura le quali supportano addirittura le main (quasi come se si trattasse di classi).