I've often experienced trouble using repeaters. I try to avoid using them because they seem unpredictable and they use a lot of memory because they build all containing items at once in stead of postponing it until they are displayed.
You could try to use a List with a custom ItemRenderer, something like this:
<mx:List id="lstQuestions" dataProvider="{QuestionsXMLList}"
itemRenderer="full.path.to.CustomListItemRenderer" />
CustomListItemRenderer:
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:CheckBox id="checkBox" label="{expo.name}"
visible="{question.CheckBox.@Visible}"
includeInLayout="{question.CheckBox.@Visible}" />
<mx:Script>
<![CDATA[
[Bindable]
private var question:QuestionXMLListItem;
public override function set data(value:Object):void
{
question = QuestionXMLListItem(value);
}
public override function get data():Object
{
return question;
}
]]>
</mx:Script>
</HBox>
You can use CSS to give the List the same look and feel as the repeater would get.