Я думаю, что вывод пытается быть как можно более примитивным - вот интересный пример:
var i:int = 1;
var mc:MovieClip = new MovieClip();
trace(typeof(i)); // number
trace(typeof(mc)); // object
Сделал немного reasearch: typeof может только возвратить из этих шести результатов:
Array -> object
Boolean -> boolean
Function -> function
int -> number
Number -> number
Object -> object
String -> string
uint -> number
XML -> xml
XMLList -> xml
"Оценивает выражение и возвращает строку, указывающую тип данных выражения. Результат ограничен шестью возможными строковыми значениями: логическое значение, функция, число, объект, строка и xml. Если вы примените этот оператор кэкземпляр пользовательского класса, результатом является строковый объект. Оператор typeof включен для обратной совместимости. Используйте оператор is для проверки совместимости типов. "