Order of OnDestroy()

Is it possible to determine the exact order in which objects are destroyed?

Or, in other words: at a scene closure, is it possible to know and determine if a OnDestroy() event will be called before or after the destruction of other objects in the scene?

Yeah, with OnDestroy you can check with Find or save a reference of the GameObject to verify, to know if was already destroyed or still there the other GameObject.
Something like:

void OnDestroy()
 {
    if(SomeGameObject != null)
    {
        //is still alive
    }
    else
    {
        //was already destroyed
    }
}

Now, if you want to check the order, put the Inspector in Debug mode and the “Instance ID” of transform with lower value with call first (This is my teory)