Thanks for your report. Consider the following program:
b = box()
attach_arrow(b, "axis", scale=3,
shaftwidth=0.3, color=color.green)
b.pos = vec(1,0,0)
print(b.axis)
scene.pause()
b.axis = vec(1,1,0)
print(b.axis)
I find that this works properly in GlowScript. In Jupyter and IDLE VPython 7 displays the arrow but in the direction of "up" instead of the specified "axis"! Very strange. And it always displays the direction of "up" no matter what object vector I name. So there is a serious bug in VPython 7.
You say that there is no trail, but there shouldn't be a trail if you specify attach_arrow. Instead, there should be an arrow attached to the moving object.