Ok, couple of issues:
1) you're correct, the UC fetch doesn't call OnFetch and OnFetchComplete. That's a bug.
2) in multi-row fetches, OnFetchComplete is called but not OnFetch. Also a bug.
it must be my lucky day
issue 1 is a template issue, The fetch routine for UC fetches has to receive the try/finally block as Fetch() has.
issue 2 is a runtime lib issue.
(edit). Fixing 2 is not doable, as in a multi-entity fetch, an entity is created together with fetched fields, so it's never the same situation as with Fetch(), which calls OnFetch when the entity is empty. -> not fixed.
Issue 1) is addressed in next build (via a template fix).