今更気づいたこと

creationPolicy="all" ? この設定値を指定した場合、Flex は、ナビゲーションコンテナ内に配置されているすべての子ビューとコントロールを、コンテナ生成時に作成します。この設定は、アプリケーション起動時間の増大につながりますが、各ビュー間をスムーズに移動できるというメリットがあります。

こんな設定があったとは。
困っていた妙な動作が解消されました。

【追記】
タブナビやアコーディオンのようなコンポーネントだと、見えない部分(初期状態で表示されていない部分)の子コンポーネントがクリエイトされていないのですが、その見えないコンポーネントをステート切り替えなんかでいじったら、変更ができないどころか、表示させてからも触れない。(デバッグモードにしたらランタイムエラーが出てます)
以下、例(これを起動して、先にボタンを押してからアコーディオンをpage2にしても文字は変更されていない)

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
	<mx:states>
		<mx:State name="s001">
			<mx:SetProperty target="{label_a}" name="text" value="fuga"/>
		</mx:State>
	</mx:states>
	<mx:Button x="10" y="10" label="label ch" click="currentState='s001'"/>
	<mx:Accordion x="10" y="40" width="200" height="200" id="accordion1" >
		<mx:Canvas label="page 1" width="100%" height="100%">
		</mx:Canvas>
		<mx:Canvas label="page 2" width="100%" height="100%">
			<mx:Label x="10" y="10" text="hoge" id="label_a"/>
		</mx:Canvas>
	</mx:Accordion>
</mx:Application>

で、この Accordion に creationPolicy="all" と付けておくと見えないLabelのtextもちゃんと変更されてます。
・・・なんで今まで気づかなかったのかと・・・あまりそういう状況に遭遇しなかったからか。