Just for the record:
basically, the problem is the Filezilla setting in Edit > Settings > Transfers > File Types > Treat files without extension as ASCII file
This checkbox is checked on by default in Filezilla installs and as the files stored in filesystem are stored as random hashes without file extension it tries to treat them as ASCII files while they are in fact binary files and thus makes them broken (you can see it that the file size differs when you upload them having this checkbox on).
The solution is to keep this checkbox off! I also recommend to uncheck the other one (Treat dotfiles as ASCII files) just in case ;)