The following simple test seems to support @Bruno Luong's conjecture that (:) results in data copying. The data of B1 resulting from reshape() has the same data pointer location as A, but B2 generated with (:) points to different data.
Structure address = 7f3f47f4e0e0 m = 2 n = 2 pr = 7f3fcb0112e0 0.5114 + 0.6181i 0.5881 + 0.4450i 0.5713 + 0.9018i 0.3682 + 0.8103i
Structure address = 7f3fcf1f4be0 m = 4 n = 1 pr = 7f3fcb0112e0 0.5114 + 0.6181i 0.5713 + 0.9018i 0.5881 + 0.4450i 0.3682 + 0.8103i
Structure address = 7f3f47e45a20 m = 4 n = 1 pr = 7f3faff0b980 0.5114 + 0.6181i 0.5713 + 0.9018i 0.5881 + 0.4450i 0.3682 + 0.8103i