It's been a very long time since I played with MPD scripting. Since Cantata has a dBus interface, I shouldn't be too difficult to do what you want. It does, however, lead you into the land of weird dbus controls.
Part of the answer is that -idle doesn't cause mplayer to attempt reconnecting to your streaming source. It only prevents mplayer from exiting.
This isn't to say that what you're seeking can't be done. It's likely you'll need a bit of external scripting to trigger mplayer to reconnect. In any case, to enable remote control of mplayer, run the following:
mkfifo /home/you/.mplayer/cmd.fifo mplayer -idle -input file=/home/you/.mplayer/cmd.fifo
After that, any time you run something similar to the following, you can cause mplayer to reconnect.
echo "loadfile http://yourserver.com:8000/yourstream.mp3" >> /home/you/.mplayer/cmd.fifo
This is about as far as I can take it without playing with Cantata's dbus interface. A bit of research should turn up what's needed.
Note: running the loadfile command while a stream is being played causes a noticeable break in the audio.
It may also be valuable to note here: is MPD, mplayer, and Cantata all on the same box or on separate systems?
Hope this helps.