I just had this happen to me too...but it looks like I found a simple fix...I'll summarize my situation briefly.
I had an iphone and a MacBook Pro (MBP).
I had them both connected to the same appleid.
When I got a new phone, it wasn't an iphone.
At the same time I got an ipad.
The ipad is also connected to the same appleid.
On the MBP the badge showing missed calls said 42. There were only 2 entries in "recents".
The 42 seemed to reflect the history on the iphone that had been completely erased and reset to factory default.
I opened and viewed all entries in the history on the MBP...the badge persisted.
I opened and viewed all entries in the history on the ipad...the badge persisted.
I cleared all of the history on the ipad...the badge persisted.
Here is what finally worked:
In the Facetime App on the MBP, Ictrl-clicked in the blank space below the history.
"Remove all recents" appears.
I clicked it.
I did this for both the "Video" and the "Audio" call histories.
The badge disappeared.
To test, I had a friend call me via Facetime.
I did not answer.
The badge appeared with the number '1'.
I opened the Facetime.
I viewed the call.
The badge disappeared.
All good.
I hope this helps anyone else that stumbles across this post...I tried many/all of the other suggestions in the thread without much luck. These simple steps did it...not sure why old calls from a device that is no longer connected to my appleid persisted, but it is fixed now!