As an example of the level of sophistication of Logisim's algorithm, consider the following circuit.
Every component has a delay associated with it. More sophisticated components built into Logisim tend to have larger delays, but these delays are somewhat arbitrary and may not reflect reality.
From a technical point of view, it is relatively easy to deal with this level of sophistication in a single circuit. Dealing with gate delays across subcircuits, though, is quite a bit more complex; but Logisim deals with this correctly, though few others do (including Logisim prior to version 2.0).
Note that I'm stopping short of saying that Logisim always addresses gate delays well. But at least it tries.
Next: Oscillation errors.