In my book crashing is better than silently corrupting your data, which is what you'd get if you concatenated two files with different encodings the Go way.
The idea that data corruption happens is wrong though. There is no data corruption, at least not less than in Python 2 now that we have surrogate escape printing support in some cases.
The only way to avoid data corruption is to be explicit about encodings which in 2.x is easy and in 3.x is almost as easy except if you want to work with stdout/stdin.