The latest rgl (version 0.95.1470, available only on R-forge at the moment; see How do I install the latest version of rgl? for how to get it) has a function arrow3d() modelled after the heplots::arrow3d function, but expanded quite a bit.

It can draw arrows like the heplots function (i.e. made up of line segments), or as flat polygons, or as extrusions of polygons, or as rotations of polygons. The ?arrow3d help example currently does this: