Setting the source for the BitmapFill to an Image using DataBinding (So that I can have a var myImage:Image which is loaded from the correct source, dependent on dpi in the init phase)
Don't set the source to an Image. Instead, assign the correct image as a Class, or load the Image and assign the BitmapData to the fill. It is possible to assign any DisplayObject to the source, but you need to make sure it is fully rendered before you do. An Image must perform other functions during the component lifecycle before it can renderer.
I have never seen any reason to load an image as a class but now I've found one.
I do not understand your second solution
... or load the Image and assign the BitmapData to the fill...
What Is the difference between this and what I've done
The difference is that an Image component has nothing to display when you assign it to the BitmapFill. When you assign a DisplayObject as the source, the BitmapFill will take a snapshot of the pixels and convert it into a bitmap. For this to work, the Image must be fully loaded and rendered before you assign it as the source, otherwise there are no pixels to capture. It also seems a bit wasteful to get a bitmap snapshot of an Image component when you can reference the BitmapData directly.