'external_id' is a bit of a "soft" special field within CommCare.
It behaves identically to any other field you've set on a case, but is indexed such that it is faster for direct key queries on mobile and is available through HQ's API's as part of a case's high level metadata.
The only internally unique ID that CommCare assigns automatically is the GUID that is reflected as case_id, but using external_id for your own generated identifiers will work a bit better than using another named case property for the reasons I mentioned above.