for a start, a rule tellsimp(a.b, ....) cannot be used to match any
dot product of 3 or more items.
next, turning simplification off around rule definitions is generally a
bad idea, even though you will see examples of this,
when the "pattern" being defined either simplifies away to something
else, or triggers an error.
If you want to define an operation that works for exactly and only 2
arguments, you can define a new operator, say Dot( )
that does exactly that. You may be able to use the built-in ".", but
not if you ever use a.b.c etc.
You can also experiment with tellsimpafter.
Good luck
RJF