"PHP 5 introduces a destructor concept similar to that of other object-oriented languages, such as C++. The destructor method will be called as soon as there are no other references to a particular object, or in any order during the shutdown sequence."
It's very common to rely on this behavior to do cleanup as PHP did not have a finally clause (like C++) until recently.
I think we're talking at cross-purposes. I'm just saying that because it's underspecified, the Zend engine can be both accurate to what's in the PHP manual, and to what's in the spec.
Anyway, it's a slightly pedantic point, so I'm probably not contributing much to the conversation here :)
I understand your point. The spec as written means the Zend Engine itself is accurate the spec. The problem is the spec isn't accurate to the language, as it exists, in the wild. Existing correct and valid PHP code executed to this spec will behave incorrectly. Therefore, it's not really a PHP spec.
(I take no position on RAII being useful or not, I don't write PHP for a living).