I try to place pieces where it was nearly impossible to make mistakes/obvious when you have as other pieces don't fit (I try to make some obscure shapes, but always surround them with very simple/obvious straight pieces) - especially around white areas where peices can be very ambiguous. Of course, you can deliberately place pieces in stupid places, but that won't win the puzzle and could make the picture look odd, so it's apparent when there's a mistake.
Although I do create the puzzle pieces, the game doesn't actually use the peices/chains for checking completion - it uses the colours you've painted. As long as all the colours are in the right place, it doesn't care how you drew them (obviously you do have to follow the number rules though).
This is why I create the puzzles manually, rather than coding the program to work out puzzle pieces. Besides that would probably take longer in the short term to code than for me to create the puzzles.