uh...eh...let's first have a look at what I'll have for you, because it sounds like you're almost getting what you want already. The way it works right now is you can grab a brush image from your layer. But it's a bit cooler than that. First a square selection appears, which you can adjust by its corners, each independently, thus it doesn't have to be square or even rectangular. But it will correct the distortion, so that's something to keep in mind, because the content of this "quadrilateral" is considered square at the end.
The image you grab then contains color and material, of course. If at any time you want to edit this image, you can paste it back onto a layer as it remembers the original corner positions, too.
Anyway, once you have the image you can choose to use it for brush #9 [9] or the new image brush #10 [0]. This, however, will change soon, as all numbers will just be open slots for your brush settings, what ever they may be.
Once you have chosen an image (or image sequence, actually), you will see the next image that is going to be painted onto the canvas exactly at its size, rotation and color, but I made it 50% transparent right now, which I will make adjustable, too, I think.
That allows you to do pretty perfect placement of elements, but there are a few things with tablet pressure that need a little more consideration of mine... it's tough.
Here's the really wicked part, though: You can grab the whole canvas. In fact, you can make a sequence exactly like an animation, if you wish. I've tested it at 2k on my system and stopped worrying after 41 images, hahaha. A single image at that resolution requires about 80Mb. Check your graphics card's memory and you'll have an idea how many you could grab.
But what's even more wicked and literally floored me was: You can paint with that sequence at that resolution as though nothing special would be going on...it's literally just like another brush. I mean, honestly, by all that's holy, try that with photoshop, hahaaaa (insert hysterical laughter here

)
Oh...and with or without fluids, of course... I just wouldn't turn on high quality then. I mean, my card is now 4 years old, I think, so.... not sure how that will be for you.
This, by the way, is all the stuff that works right now...so...no funny hopes or dreams, haha, it's already kickin' happily!

Plans I have, though, include real time deformations during painting to create even greater variety with a small set of images or a single one.
The other really, really, really big thing in all of this is that I'll make it so that you import images into this "image board" from which you then can paste onto the canvas or even replace the current canvas altogether, if you liked. You can paste, though, with the added ability to distort the image, too. You can switch between perfect translation or perspective translation (which is still a bit odd somehow...my brains are fried, but it works kind of ok).
The weirdest thing, though, which I'm not sure, if I should hook it up or not is...ah... completely wacky but totally magical, too. And it worked already, but I took it apart in the meantime. You can have source and target polygons, allowing you to draw on the source whilst it is being displayed on the target polygon. As a test I basically imported an image of some buildings, then made the target fit one side of a building and left the source just square. When I painted on the source it then painted on the building wall perfectly. That really felt unreal. Hmmmm...I should definitely hook that back up just for kicks, hahaha!

Other cool things that are already working with the image brush include an alternative average mode, which really is awesome. You have to ways of painting with images. One is sort of a straight forward way, looking at the image just like as a brush, which would continue to build up on top of the last imprint...eh... essentially creating a mess, if you wanted a clean sticker like leafs or so. That's why I then added a "replace" mode, which cleans up under the location the image would go and replaces what's been beneath it. In that mode, though, the average function does some very special magic. It stores the entire image before you make your stroke. Then it will do a real time color pick beneath your brush and paint the image at what ever color it had found there. This way you can make a gradient, for example, and then paint images over it that will replace the background with the images at the colors it rolled over. It's powerful! Plus, I don't think I've ever seen such a thing, have you?!
Here...