Non esiste un unico modo "corretto" di scrivere e strutturare i casi d'uso. Innanzitutto, il tuo approccio deve funzionare per te e per le persone con cui lavori.
Vorrei suggerire che "login" spesso non è un "vero" obiettivo dell'utente, quindi vedrei questo come sotto il livello di obiettivo dell'utente. Dal mio punto di vista, "acquistare prodotti" sembra essere un ragionevole obiettivo dell'utente per un cliente nel tuo esempio. "Sfoglia prodotti" potrebbe non essere sempre un obiettivo dell'utente principale, ad es. quando stai sfogliando un catalogo per comprare qualcosa. D'altra parte, il Cliente potrebbe semplicemente voler ottenere informazioni senza l'intenzione di acquistare immediatamente.
La "scrittura di casi d'uso efficaci" di Alistair Cockburn è sicuramente una grande fonte di scrittura di casi d'uso. Suggerisco anche di guardare "Lean Architecture for Agile Software Development" di James Coplien e Getrud Bjornvig: questo libro discute l'idea di una "abitudine", cioè una sequenza di compiti che viene fuori nel contesto di diversi casi d'uso ma che è in stesso non è un caso d'uso completo. (Cerca "abitudini d'uso" e troverai una sezione pertinente del libro, quindi vai a comprare e leggi il libro: è fantastico!)
La scomposizione dei casi d'uso in casi d'uso sempre più piccoli è un argomento molto dibattuto e molte persone sono piuttosto riluttanti a farlo. Tra le altre questioni, il sovraccarico amministrativo di tenere traccia delle dipendenze dei casi d'uso e di tenere in relazione i casi d'uso correlati può essere molto elevato. Inoltre, i casi d'uso a grana fine e altamente decomposti sono spesso difficili da lavorare con persone non IT (e, a dire il vero, anche per gli esperti IT).
Cordiali saluti,
Oliver