well you kind a have a point here , but take a look at the help
Remarks
The OpenTables method loads the data environment tables when the AutoOpenTables property of the data environment is set to false (.F.) or if the data environment has been unloaded using the CloseTables method. The OpenTables method acts like an event, that is it is called automatically if autoOpenTables = .T..
I set the AutoOpenTable to .F. and neither the OpenTables or BeforeOpenTables fired, this should mean that the OpenTable should be a Method instead of an Event, meanning that the OpenTable "Method" should be called by the programmer instead of firing itself as a event. maybe this could be called a Bug.
.......
DO WHILE .T.
ME.Work()
ENDDO