I cookies sono inviati tramite header al browser e vengono salvati in un file di testo nel client. In questo file inserisco tutte le mie info che mi occorrono per la gestione del sito.
Una bella differenza tra cookies e sessioni, presi nel senso di come dite voi, è il fatto che tramite sessione è possibile salvare dati sensibili (piangono sempre) mentre nei cookies non deve essere salvato nulla di importante.

I biscottini dovrebbero servire più che altro per tracciare ciò che sta sul server, ovvero per contenere SID od altro "puntatore" e nulla più: dato che la validità dei biscottini usati da PHP per immagazzinare il SID è generalmente limitata fino alla chiusura del browser (o fino ad un tempo max), e quindi inutile per mantenere traccia di un utente a lungo termine, per far ciò è possibilissimo spedire "manualmente" un cookie al client, che contenga un identificatore ad un nostro file di "pseudo-sessione" che noi abbiamo messo dove ci pare e che contenga le nostre informazioni.

Insomma, intendo dire che il cookie dovrebbe servire, nell'ottica di una programmazione sicura, solamente a contenere "puntatori univoci" a file gestiti dall'applicazione PHP su server e non dovrebbe contenere altro - se non variabili temporanee "di appoggio", di poco conto.