When I first learned Eiffel, I learned the design pattern for getting results back from commands - storing the result in an attribute of the class being changed. And I dutifully followed it religously.
More recently, I have encountered situations where this pattern seems to be undesirable. If the command can be re-invoked recursively, then things can get tricky.