Something else I noticed:
array_type::array_view<3>::
type row_2 = a_3d_array[
boost::indices[range(0, z_dim)][range(1,1)][range(0,0)] ];
was perfectly acceptable from a boost::multi_array ... why? dimensions of zero thickness should not be allowed. That is the ranges range(1,1) and range(0,0) should not be allowed imho. Of course if I can enter the zeroth dimenson of infintesmal thickness then all would be good.