Aggiungo delle considerazioni;
Le query saranno create dinamicamente tramite php;
Ho fatto dei tentativi ieri con entrame le tipologie di tabelle, con il risultato che, nel primo caso (con la tabella orizzontale per intenderci) il codice è più pulito, ma creare la query è estremamente più difficoltoso a causa dell'alternanza tra frutti e flag... e anche posizionare prima tutti i frutti e poi tutti i flag, non migliora la cosa;
Nel secondo caso invece (con tabella verticale) le query sono molto più facili da creare, ma ogni volta che mi trovo a dover inizializzare un utente con molti frutti, o anche a modificare molti frutti sullo stesso utente, mi trovo a dover gestire 20-30-40 query per una singola operazione... :-s

Forse un compromesso potrebbe essere creare 2 tabelle simili:

utente|frutto1|frutto2|frutto3|ecc

utente|flag1|flag2|flag3|ecc

In questo modo avrei praticamente 1 query per ogni operazione per utente, ma ripetuta 2 volte, in quanto la struttura sarebbe praticamente identica e abbastanza semplice da realizzare...