This is similar to surrogate keys in relational database theory. Surrogate keys are not derived from the application data and thus carry no semantic meaning. This is opposed to natural keys that are derived from the application data.
The main advantage of surrogate keys is that if the application data changes, it will not require the reference to the data to change. In the case of natural keys if the application data changes, it will cause the reference to the data to change. Hence, all foreign keys will need to be updated accordingly.
In the semantic web any triples referring to tt0268252
will not need to be updated if we essentially want the label to change from say Movie
to Film
. If we used strings like http://awesome/movie
and it needs to change to film, we will need to change our IRI http://awesome/film
, which will go against the principles of the semantic web (that IRIs should not change). Or we will have to live with http://awesome/movie
with http://awesome/movie rdfs:label "Film"
. This could lead to even more confusion rather than opaque code.
As an aside, that is why some prefer using Persistent uniform resource locators that provide resilience when the underlying web resources change. In a similar way these "codes" provide resilience when the application data changes.