"Fred can't have stolen the money" has roughly the idea of "It is logically improbable that Fred stole the money".
"Fred couldn't have stolen the money" is closer to the idea of "It was not possible for Fred to steal the money".
"Fred can't have..." is therefore closer to the idea of "I am sure Fred didn't..."
Thank you.
Just to make sure I got it right.
'I am sure Fred didn't steal the money' matches 'Fred can't have stolen the money' (it is my strong conviction based on evidence, my experience etc.)
while
'Fred didn't steal the money' matches 'Fred couldn't have stolen the money' (the facts leave no room for speculation)
Would you notice/make a mental note if you heard someone mismatch the above?