"However, if you specify mask, composite image is the horizontal X displacement and mask the vertical Y displacement."
Here are my tests:
Image: morphA.gif

X displacement image: triangle_interp_x.png

Y displacement image: triangle_interp_y.png

Displacement along x only: morphA_dx.gif
composite triangle_interp_x.png morphA.gif -displace 100x0 morphA_dx.gif

Displacement along x and y using only x displacement image: morphA_dx_dx.gif
composite triangle_interp_x.png morphA.gif -displace 100x100 morphA_dx_dx.gif

Displacement along x and y using x and y displacement images: morphA_dx_dy.gif
composite triangle_interp_x.png morphA.gif triangle_interp_y.png -displace 100x100 morphA_dx_dy.gif

Am I doing something wrong or is this a bug?