As a far-fetched example, think of Lego. You can't "fail to compile" your Lego bricks. You have a finite selection of bricks (all clearly visible and usually available within arm's reach), and your job is to just lay one at a time. Given any brick, it's "obvious" to a human how it fits with other bricks. The worst you can do is essentially create a crappy Lego design. As you noted going from a rough thought of
"Uhm I want to build a Dragon of about this size..."
to a finished build requires a powerful AI. But we don't need to go that far to be better than
"Place $brick1 in p=(32,17) at orientation o=(0,pi); place $brick2 in p=(38,15) at o=(-pi,0); ..."
The rigidity of the bricks inherently prevent you from overlapping them, but not the above declaration :)