It seems that xxd is not using locale to figure out which symbols are printable and which should be represented by a ".". Because of that, it substitutes all non-ASCII letters with a ".", which makes it harder to use xxd for binary editing.
You're right, it had hardcoded ASCII values. I've fixed this in 6.0-0.32.