The way that your code is structured is fine, obviously return will not be executed and execution of that function will continue so I don't know what Cookie is on about there
(I actually prefer coding like that, much easier to read and debug without everything being needlessly nested).
I'm not sure exactly how things work internally, but surely just returning the original message is the same as not returning anything? (If not, it's very illogical but I can see how that might break things). The way you had it originally (return "") was wrong and will stop the message being sent completely, but returning the original message SHOULD be fine.