This is correct and a feature of Fortran 2003.
Another related feature of Fortran 2003 is for allocatable arrays, where you could say:
integer, allocatable, dimension(:) :: a
a = [3,4,5]
and a would get automatically allocated to the proper shape, deallocating any previous allocation. In Intel Fortran, this behavior is NOT the default and requires an option /assume:realloc_lhs. However, the use you described with the derived type components does not require the option.
wOW... That's very neat. Thanks a lot Steve.
Olivier