It could be done in the kernel. You create a FID per shoutcast stream that you want to listen to. Now in the kernel you have code that intercepts the file open and read calls. So when the player tries to play your special FID the kernel code goes off and finds the shoutcast stream, does some "mangling" on it and then streams it in as the player requests data from the disk.

The kernel code will have probably have to lie to the player about certain things to convince it that the MP3 is very long and it will probably have to "pad", feeding the player some silence, while it finds the stream.

That would be the way to make it work seamlessly, but there would be a lot of problems to solve to make it work. Alternatively you just write a specific app to stream and decode (which would be able to use the tools out there already to do these things) and bind it to the HiJack menu.
_________________________
Remind me to change my signature to something more interesting someday