FWIW, I prefer the new behavior. It was weird to me that Compact actually could grow the input text.
As is now, there is no option to just return just JSONP valid JSON. The new defaults for the json package are either complete HTML escaping or no HTML escaping, with both Marshal and NewEncoder defaulting to complete HTML escaping.
IMO that's fine and this issue can be closed or transitioned into a "document the behavior change" issue.