You can indeed send an MP3 encoder's output to a file and an Icecast server at the same time. It looks like you're using BASS.Net's helper classes in the code above. It should be possible with that too, but I'm not familiar enough with it to say how exactly. When using BASSenc directly instead, you could do something like this:
encoder = BASS_Encode_MP3_StartFile(rechandle, options, BASS_ENCODE_QUEUE, mp3filename);
BASS_Encode_CastInit(encoder, "localhost:8000", "changeme", BASS_ENCODE_TYPE_MP3, NULL, NULL, NULL, NULL, NULL, 0, BASS_ENCODE_CAST_PUBLIC);
Note that's using the BASSenc_MP3 add-on (which is based on LAME) instead of LAME.EXE for MP3 encoding. BASS_Encode_MP3_StartFile can be replaced with BASS_Encode_Start if you would prefer the latter. Please see the BASS_Encode_MP3_StartFile (or BASS_Encode_Start) and BASS_Encode_CastInit documentation for details.