I recently noticed something: The off topic subreason chosen by flaggers doesn't make any difference at all. Specifically, the subreason chosen is not shown to close voters.
Besides, as the "other" reason is unavailable, a lot of cases that aren't covered by the custom off topic reasons aren't flaggable unless you use a moderator flag (which is less useful as it doesn't go into the review queues). This is a gap in the workflow, and not entirely intuitive for flaggers.
I propose that we give the flaggers one close off topic reason (and one migration reason)? It seems like the backend already treats custom close flags as the same.
The most obvious objection here (to me) is that it removes part of the usefulness of the close reasons -- the fact that, for flaggers and VTCers, it's much easier to determine whether or not the question should be closed.
However, this can be solved by nesting the close reasons under the description of a generic "Does not fit the topic" close reason.
Alternatively, just give flaggers an extra default close reason "This question does not appear to be about $Topic, within the scope defined in the help center."