Each option has a downside. If I understand correctly, this is the trade-off:

*Deprecate now*: people who don't want to see warnings have to write code like:

    if np.__version__ < '1.8.0':  # OT: we need proper version tuples asap, this will break for numpy 1.10
        oa_ndim = 0
    else:
        oa_ndim = -1

*Deprecate later*: more people write ``oa_ndim = 0`` now. For those that don't care about earlier versions, they're still OK but may have to fix their code several versions down the road. Then they can simply fix it without doing version comparisons.

I have a preference for deprecating later. Deprecation warnings aren't common for numpy (check the release notes of recent releases - 1.7.0 is the only one that has a significant amount), so I don't really agree that warnings that can't be fixed are "very common".