Un motivo comune per questa "caratteristica" è che un sito cerca di mantenere uno stato della sessione corrente sul lato server.
Il desiderio di tracciare lo stato di "conversazione" sul lato server deriva spesso dal tentativo di scrivere un "client ricco" simile al desktop sul web (invece di abbracciare il web come il caos che è). Per essere onesti, questo principalmente è accaduto in un momento in cui il concetto di una ricca applicazione web non era così ben compreso come lo è oggigiorno.
Ad esempio, se un sito fornisce una procedura guidata su più pagine e tiene traccia di dove sei esattamente e quali risposte hai dato, allora il supporto back / forward in modo sano diventa complicato (perché alcune operazioni non vengono comunicate al server affatto).
Questa complicazione a volte va così lontano che i siti sono apertamente vietati in avanti / indietro. Come hai notato, questo ha evidenti problemi di usabilità.