I think it's because keys themselves can be anything that can be encoded into bytes (i.e. not necessarily human readable).
For example, putting an entry with key "0xabcd" yiels the following log message (in debug mode):
{"level":"debug","ts":"2025-01-06T08:03:35.726338-0800","caller":"etcdserver/server.go:1950","msg":"applyEntryNormal","raftReq":"header:<ID:3632597502842097949 > put:<key:\"\\253\\315\" value:\"456\" > "}
253 in octal corresponds to 0xab, 315 in octal corresponds to 0xcd:
$ echo -ne '\0253\0315' | base64
q80=
$ echo -ne '\xab\xcd' | base64
q80=