The copy assignment operator has the usual signature:
my_class & operator = (my_class const & rhs);
Does the following signatur
Why is everyone obsessing over (a = b) = c? Has that ever been written by accident?
There is probably some unforeseen utility of the result of assignment being altered. You don't just make arbitrary rules against made-up examples that look funny. Semantically there is no reason that it should be const, so do not declare it const for lexical side effects.
Here is an example of somewhat reasonable code that breaks for const & assignment:
my_class &ref = a = b;