I added an option "Use old solid fuse" and made it the default. When using the old method, it fixes the problem with unwanted edges.
I found this here http://www.opencascade.org/org/forum/thread_13599/
see 'Use Old Boolean Operations “BRepAlgo_Fuse” can avoid coplanar faces.'
However, apparently the new method is better in other ways, so I have made an option.