Don't care which type protected operator= returns

The current implementation allows any return type for private assignment operators but not for protected ones. Actually they don't differ much. Return type only matters for "chain assignment" scenario (`a=b=c`) and how much is it more likely in a derived class compared to the same class? I'd say not much. The return type does matter for public assignment operators.