А кто их как строки то отметит? Если бы там было

Код:
trace(a==3 ? obj['a'] : obj['b']);
тогда да.
А мой код эквивалентен

Код:
const tmp : String = a== 3 ? 'a' : 'b';
trace(obj[tmp]);
Вы же, наверное, не все "строки" из пула строк помечаете как невалидные. Но даже это не поможет против multinameL, имена могут быть не в пуле:

Код:
for (var i : int = 0; i < 10; i++)
trace(obj['field' + i]);
В этом случае у вас в процессе вычисления на стек будет класться значение 'field' + i. Не выполняя выполнения кода (или какого-то сложного анализа) вы просто не узнаете все возможные строки.

Код:
действительно некоторые опкоды выполняют разные задачи при компиляции flex sdk и в flash ide?
Это вряд ли, для этого придется усложнять плеер. А вот то, что одна и та же AS3-конструкция компилируется по-разному flex и flash вполне возможно.