Group delay (MATLAB $\tt grpdelay$)
This is a bug, either in your code, or in your version of the Matlab function grpdelay. As you correctly pointed out, making the last denominator coefficient imaginary just rotates the pole-zero diagram. This means that for the given example, the zeros stay where they were (in the origin), and the pole angles are rotated by $\pi/8$; or course, the pole radii remain unchanged.

For the group delay function this means that it only gets shifted (along the frequency axis), but its maximum and minimum values (and its overall shape) must remain the same.

Using Octave I get the expected result:


g1 = grpdelay(1,[1 0 0 0 .1],1000,'whole');
g2 = grpdelay(1,[1 0 0 0 .1j],1000,'whole');
plot([g1(:),g2(:)]), axis([0,1000,-.4,.5]), grid on