Session locking (tying a user down to a particular instance in a cluster) can be used to mitigate the statless issue, basically if its data that you are ok with losing if one instance of a cluster goes down then it should be fine to hold that state (such as a user's shopping cart, for example), this could be worth the trade-off for the extra overhead of having to persist the data to the DB. Using state has its places for some things and shouldn't be used in other situations so it all depends but I'm not sure the idea of never having state is necessarily a good hard and fast rule.
Comments
Session locking (tying a user down to a particular instance in a cluster) can be used to mitigate the statless issue, basically if its data that you are ok with losing if one instance of a cluster goes down then it should be fine to hold that state (such as a user's shopping cart, for example), this could be worth the trade-off for the extra overhead of having to persist the data to the DB. Using state has its places for some things and shouldn't be used in other situations so it all depends but I'm not sure the idea of never having state is necessarily a good hard and fast rule.