Here my response:
3- Other solution?
You have to add this part in your skin :
<s:Group id="contentGroup" left="0" right="0" top="0" bottom="0" minWidth="0" minHeight="0">
The spark architecture (introduce in Flex 4.0) is a couple of skin/component. The component holds the logic behind the event handling and the skin is responsible of displaying the things. The contract beetween those two parts are called "SkinPart" which could be either required or not. The component is declaring that is need this, this and this component (required or not) and is using them as part of its logic (registering handlers and so on). The skin has to create the required SkinPart declared by the component.
In your case, you're skinning a BorderContainer (which is a SkinnableContainer). This component declares that it needs a Group component called "contentGroup". It's not required, so it doesn't complain at compilation. The SkinnableContainer's logic is adding the child components in this "contentGroup" skinPart if it exists. It's the reason why you can't see your Label.
Other solution ?
As suggested in the documentation (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/spark/components/Border Container.html#includeExamplesSummary), it's not recommended to skin this component. The default skin is written directly in as3 and is made to be the most efficient way of adding stroke and fill to a container (by css attribut).
Basically you want to add a bitmap fill to the background of your container... So how you can achieve what you want :
BorderContainer can achieve that natively ! In this case use the "backgroundImage" and "backgroundImageFillMode" attributes
<s:BorderContainer height="30" id="footerContainer" left="2" right="2" bottom="1" backgroundImage="@Embed('skins/defaults/img/footerBg.png')" backgroundImageFillMode ="repeat">
<s:Label color="#ffffff" text="hello" />
I did as you said (although I used a CSS file) and it works really well thank you!