What huge difference? The size difference has several possibilities...
You have deleted documents in the source index that take up space that are not in the destination. This is most likely the difference The counts appear to be the same... when you run count, why _cat/indices are not the same unclear
Did you guarantee the mapping is consistent between the source and destination ... Did you create the destination index with the exact same mapping of the source or did you just run reindex
If the source index has been around for a while elasticsearch may have done some merging (aka compaction in the background).
Between the version there may be some small differences but I suspect 1 is the most likely with also 2 or 3 maybe adding some small variance.