Assertion(表明)について

Assertionの使いどころの理解があいまい。
現時点での自分ルールは

/**
 * 自分しか使わない等の理由で引数の内容が自明。
 * @param arg nullはダメ。
 */
public void doWithClearArg(String arg) {
    assert arg != null;
    //---
}

/**
 * 自分以外のユーザがいる等の理由で引数の内容が自明でない。
 * @param arg nullはダメ。
 * @exception NullPointerException argはnullではダメです。
 */
public void doWithUnclearArg(String arg) {
    if (arg == null)
        throw new NullPointerException("arg is null.");
    //---
}