I dread the day that codebases are filled with unicode and it's up to you to notice that "x ⊗ y" is not the same as "x ⊛ y" or "x ⊗ ȳ".
The over bar example you give is a bad notation independently whether it is code or not. But Unicode indices and superscripts are amazingly useful. And .dot and .kron are simply terrible notation compared to the standard Unicode operators for the same operations.
When I was at the university, most of the software written here was single purpose, rarely more than a couple thousand lines - you've got the time to actually think about every step of the few algorithms that'll be in there.
My last freelance gig was about delving and fixing performance bugs in a multi-million-line codebase that I'd never seen before, in a few days' time. There is absolutely no time to stop and think about ⊗ vs ⊛ in that case.