There's a difference between an Image and a Graphics in Mathematica. Images are rasterized things like bitmaps. Graphics are actual descriptions of images which are easy to manipulate (they're kinda like SVG images).
When using ClickPane, you should use Graphics, not Images. ImageCompose produces an Image. Use Show to combine graphics. ImageCompose takes Graphics and turns them into Images. You would want your code to look something like this:
AnImg[p_] :=
Show[(*two images combined into one output image*)
Graphics[{Blue, Opacity[0.5], Rectangle[{-20, -20}, {20, 20}]}],
Graphics[{PointSize[0.05], Red, Opacity[0.5], Point[p]}]]
DynamicModule[{pts = {{-20, -20}, {0, 0}, {20, 20}}},
ClickPane[AnImg[Dynamic[pts]], AppendTo[pts, #] &]]