Sorry it just doesn’t “feel right”. There are different encoding scheme as laid out in the RFC. and
that cover their uses.
If you have a system that states “send us Base64 data” it is poorly specified - better to state, send us Base64 data according to RFC 4648 base64url format or according to RFC-2045.
"This encoding may be referred to as "base64url". This encoding
should not be regarded as the same as the "base64" encoding and
should not be referred to as only "base64". Unless clarified
otherwise, "base64" refers to the base 64 in the previous section.”
It also states:
"If non-alphabet characters are ignored, instead of causing rejection
of the entire encoding (as recommended), a covert channel that can be
used to "leak" information is made possible."
So having a “meta/relaxed decoder” usually leads to specification/interoperability/security problems down the road. I realize that in the “real world” you are often forced to interoperate with these “bad” systems, but as most things in Go, better to be explicit and report errors rather than be clever.