I handle transfers between accounts manually - as in when I see duplicates show up, I remove one of them. A neat thing that ledger-reconciler does is to print the balance (as listed on the banking website) for each account. That information combined with Ledger's balance report tells me immediately whether something is off and if investigation is needed.
This in itself has saved me so much time that I can deal with manually editing the occassional duplicate entry (internal account transfers). I also keep all my ledger data in git so it's very easy to see what has changed, etc.
Have you looked at the reckon gem[0] for auto-classification? That is basically what this program uses.
[0]: https://github.com/cantino/reckon