By "normal"assignment, I assume you mean intrinsic assignment.
Are you asking if re-allocation on assignment can/should occur
in, for example, a WHERE statement. I believe the answer is
'no'. The language of the Fortran 2003 standard seems clear.
03-007r2.pdf, p. 148:
When a where-assignment-stmt is executed, the values of expr
that correspond to true values of the control mask are assigned
to the corresponding elements of variable.
Note the last 4 words talk about assignments to elements not whole
arrays. If you are doing an intrinsic assignment to an array element
of an allocatable array, no re-allocation occurs.