型が特定できるケースとできないケース

AmaterasとWTPJavaScriptエディタで型が特定できるケースとできないケースを調べてみました。
まずは基本形ですが、以下のようなケースはもちろんOKです。eはHTMLElementだと認識され、eに対して補完するとちゃんとHTMLElementのメンバが補完候補として表示されます。

var e = document.getElementById("id");

以下のようなケースもサポートしていて、e2はちゃんとHTMLElementと認識されます。

var e = document.getElementById("id");
var e2 = e;

以下のようにJSDocに関数の引数の型が指定されている場合は引数の型を特定することもできます。もちろん@typeを記述しておくと関数の戻り値の型もちゃんと認識します。WTPだとユーザ定義関数の戻り値の型は認識できないみたいです。

/**
 * @param {String} name
 * @type String
 */
function hello(name){
  ...
}

いまのところ以下のようなケースがダメです。WTPだとこういうケースも型を特定できているみたいです。

var e = null;
e = document.getElementById("id");

もう一押しかなぁ。