Much better than Matlab's plotyy function by far. The only thing that I cannot figure out yet, is for some reason my y label for the label on the right side of the plot always intersects with the axis. I can move the label so it's not a big deal, but it would be nice if it didn't intersect with the axis to begin with.
1) See my answer and suggested workaround to Felix's question about multiple OAXES. It is not currently possible to have more than one OAXES exist in a given axes. I will consider it for a future release.
2) There is not a way to specify an offset. If you want to show a translated coordinate system, you could simply set the tick labels of the OAXES object to custom values representing the translated coordinates. Be sure to set the tick labels and not the ticks themselves. This trick also works on the standard MATLAB axes object - the tick labels can be independent of the values of the ticks. The drawback is that if the tick locations change (due to limit changes, etc.), the manual tick labels will be incorrect. I'll consider adding an 'offset' property in a future release.
Like many of the low-level MATLAB graphics functions, OAXES does not redraw until the MATLAB event queue is processed, which doesn't necessarily happen when you would like it to during function execution. Instead of using the PAUSE command, you can call the MATLAB function DRAWNOW() (see the help file for DRAWNOW for more information). Alternately, you can force the OAXES object to redraw by calling its DRAW() method. If you have a handle OA to the OAXES, simply call OA.draw(). If you don't have the handle, calling oaxes('draw') should also work as long as it can find the OAXES object.
I'm not sure what you mean by "rotate the axis". In 3D views, the axis lines rotate along with all other drawing objects as the camera location is moved. Trying to keep the displayed axis lines fixed on camera moves means that the lines would no longer correspond to the coordinate system. Although it would be interesting to create a camera-independent display mode for a given object (e.g. apply a transform to the object that undoes the effects of the camera location change), that is not in line with the motivation for writing OAXES.
(1) I'm not sure what you mean by inside vs. outside the axis. If you are referring to which side of the axis line the labels are drawn on, then there is currently no way to specify this, but I'll consider adding one in the next release. If you are referring to inside and outside of the plot box/cube, OAXES always draws the labels next to the axis lines, which are always inside of the box.
(2) No, it is not currently possible to define minor ticks. They are calculated automatically for log-scale axes, and not shown for linear scaling. This capability might be added in a future release.
(3) It is not possible for more than one OAXES to exist inside of a given axes. If you want to show more than one OAXES on a given plot, you could try overlaying additional axes objects with transparent backgrounds, and limits linked to the original axes, each containing an OAXES object. See the MATLAB functions linkaxes() and linkprop() for more information.