Spotify should cache any played music locally, no matter if on mobile or wifi.
For this I would like to set a limit (e.g. 5 GB on my SD card) and when full it should replace the oldest cached music (first in, first out).
This way when I'm on a mobile network and decide to stream something, at least it will go into the cache and listening again won't cause more traffic. Or when offline I can keep listening to a new album I just streamed (on wifi or mobile) without having pressed save.
Also pressing save on any music in cache should make it permanent, move it from the cache to the permanent store and not cause additional traffic.
Some of this might already be in spotify's clients, but not as comfortable, transparent or comfortable as I'd like it for iOS and Android.