However, some Matlab users that try to use Octave complain about this lack. Typically the Simulink models lag research and are less flexible, so shouldn't really be used in a research environment. Octave itself includes no Simulink support.
If you notice any incompatibilities, please report a bug.
The support for Matlab compatible GUI functions was added in Octave version 3.6.0 and is converging towards full compatibility. The support for graphics handles is converging towards full compatibility.
On a related point, there is no Octave compiler, and so you can't convert your Octave code into a binary for additional speed or distribution. The MathWorks themselves have a good document discussing vectorization at. For this reason you must vectorize your code as much as possible. Octave has a not fully functional JIT compiler. The JIT must know the return type of all functions called in the loops and so you can't include user functions in the loop of JIT optimized loops. This compiler allows the acceleration of for-loops in Matlab to almost native performance with certain restrictions. Matlab includes a "Just-In-Time" compiler. Another example is that testing and the runtests function work differently in Matlab and Octave. For example the sprandn function can not force a particular condition number for the matrix like Matlab can. Some of the core functions have limitations that aren't in the Matlab version.
There are a few functions that aren't implemented, usually to do with specific missing Octave functionality (GUI, DLL, Java, ActiveX, DDE, web, and serial functions). those that are in the core and not a toolbox) are implemented, and certainly all of the commonly used ones.