OK the rule you quote is technically incorrect. All the layers of a web application have state.
The intent of the rule is "dont hold per session state server side".
ie Session variables in asp, which were commonly used to do things like items in basket/user name etc
The reason is that you will run out of memory on the server as your app gains more users. Moving the storage to a database or shared cache dosent solve the problem as you still have a bottle neck.
To maintain per user application state without hitting this problem move the state to the client side. eg put the basket items in a cookie or mire advanced client side storage.
Because the number of clients scales with the number of users your app as a whole wont have a bottle neck and will scale well