I think the duplicate loses data because it casts the actual Java exception to a simple struct. I explained it on a pull request or issue recently, but it's not the one linked here so I'm not sure where it was. If you search the mailing list, this thread shows problems people were having with duplicate:
CF10 + CF11 pass exception struct as object, so that's why the error detail and message fields are empty in ExceptionBean
Original code