I have nothing against per-pixel calculations and heavy use of BitmapData, I wish more could be done without sacrificing framerate on lower-end machines. But if you want to simplify your engine so that it runs quickly, try using points nested within your terrain instead of another layer of graphics.

What I'm saying is, I think if you mapped out the summit of each hill and calculated proximity, you could achieve similar (if not the same) results.