@Alexander,
I think the author of the article is correct when he says that the persistence logic must be split from the domain model. But completely stripping any kind of action from such a business-rich object such as Customer or Order, is no different than writing procedural code with Data Structures and Functions. Not that structured programming is bad, everything has its use, but this is somehow being advocated as "good OO", so, at least to me, it seems like there is a contradiction somewhere. Anyway, Martin Fowler surely expresses this better than me in his article:
http://www.martinfowler.com/bliki/AnemicDomainModel.html.
@David
In my opinion, we should model the system based on the intents - on the business needs behind each action - and that we should group these actions by using the names that most clearly reflect the business.
So, instead of thinking about Domain vs. Services, let's think about plain business rules. Let's forget about the "big names".
From the action of "adding a product to a user's basket", I imagine Product, User and Basket objects, and one or two Add methods (basket.add(product) and maybe user.addToBasket(product), if necessary). The action is a plain business rule, and the objects within this application directly reflect the business. If there are other rules related to these objects, I would expect to see methods for them as well.
Now, as for persistence. the business may require that the Product, the User and the Basket are available for later use after some kind of shutdown. There usually isn't a direct business correlation for this kind of mechanism, except maybe for a file cabinet full of paper files and folders.
Then, we come up with our own names: Database, Storage, Repository, Gateway, FileSystem, whatever. In any case, the name represents a persistence mechanism, and just like for Product, User and Basket, I imagine a Gateway object with a Save method, that directly reflects the business need. I wouldn't imagine that a Product should persist itself, just as I wouldn't imagine it to print itself.
So, to link with your examples, I'd go with the "user.addToBasket(product)", regarding the specific business rule, and a "userGateway.save(user)", with regards to persistence. This design splits the responsibilities, so it's easy to test, and also easy to follow, since we have defined an obvious place to put each action.