After seeing this post, I started thinking about how you could draw on top of other sprites, and that thought turned into me coding it up on my ipad (cause I wasn't at my computer).
This library is designed to allow you to seamlessly draw on top of other sprites like the regular pen.
To use this, just run pen down on [ V] :: pen with the sprite you want to draw on selected, and then move the sprite with any movement blocks. You can also use pen up on [ V] :: pen to stop drawing on that specific sprite.
Library: Snap! Build Your Own Blocks
Demo: Snap! Build Your Own Blocks
This library works by modifying the movement blocks to paste a line from the start position to the new position onto the sprites. I also made it use a local variable to store all the sprites that the pen is down on, so that every sprite can have a different list.
There are actually a few limitations though. The way I draw the line is basically like if you turned on flat line ends, so no round edges. Since this doesn't actually use pen, you can't write text onto sprites (though you can easily do it with the text costumes library). And of course, if you do want to clear the pen trails on a sprite, you have to just switch to the original costume (I'm not going to create a system to do that).
The reason why I'm not sharing a script pic, is because snap doesn't save customized primitives in script pics, so this wouldn't work if I just shared script pics. I don't feel like embedding the xml manually, especially since that can result in people thinking they can use script pics with this library just fine