I buy it, sounds like an noble goal! However, I didn't quite understand everything (tired)... what's new with WAV? The reset does nothing so that metadata doesn't interrupt the stream, but when icecast fails to send we need a reset that resends the header? I don't see how it could be different from MP3.
First, WAV format is only supported by harbor, not icecast, this is an important point as we will see later. The problem also occurs with %external("aacplusenc - - 64") and harbor but this is minor since it should work ok with icecast/shoutcast which is the main purpose..
The situation is the consequence of two independant variables, that happen to have the same values in both MP3 and ogg case:
- Do you need to reset the encoder to pass new metadata ?
- Does the format have a header ?
The two answers are false, false for MP3 and true, true for ogg vorbis.
In the case of WAV, the encoder does not need to be reset to pass new metadata because this is done through icy metadata updates, but the format does have a header.
The header is needed for the only case where WAV is useful, harbor.
I believe, though that this could happen in other cases. Basically, it concern any format that uses icy metadata update but has a header...
Note that icecast could be modified to have WAV support, there is nothing impossible technically..
Fixed in 
Hi yall !
I've realized that the "fix" for this issue was not sufficient and there was still too much confusion, in particular "restart_on_metadata" was still not working..
Therefore, I took a step ahader and did the following changes:
- insert_metadata is now of the type: metadata -> unit and is documented as meant for inline insertion of metadata
- Encoders creation now also needs metadata, which allows to pass initial metadata when there are some.
I kind of like the fact that it also removes the call to self#send after seld#insert_metadata and I think overall the patch makes sense.
I am still testing it but it seems to be fine here. Please, make any comments. If I do not find issues within the next days and no one object, I will commit it...
Commited and hopefuly fixed in  ...