The rules about repeated restricted pointers have been discussed more thoroughly in the fortran analogue. When an operand is modified through one of those pointers, reference through the other may pick up the operand either before or after modification. Thus the restrict qualifier could produce undefined behavior.
It's reasonable to expect __restrict and restrict to work the same in compilers which implement both, although I've never seen anyone promising this. They have effect only for modified operands.
I have dealt with customers who insist they have never been bitten by violating the aliasing rules and refuse to take the measures to use the repeated pointers safely.