I was not around when this may have been discussed in numpy/numpy#21912.  In-place matmul is a weird beast, but for NumPy it would be strange to make @= and out-of-place operator.
Because of this, NumPy doesn't define it currently, and I am unsure that it should be done.  Would NumPy have the tight restriction that the shape must fit and we actually assign back to a (i.e. truly in-place at all operators?).
That would make sense, but even then, it would even be slower and use as much memory as before anyway.