The default record type is only defined at the profile (and therefore user) level, not for the whole org. So, whichever user is describing the object will see their own defaultRecordTypeMapping
defined for their Profile. For example, if User A executes this code in Apex:
for (Schema.RecordTypeInfo rtInfo : Account.SObjectType.getDescribe().getRecordTypeInfos()) {
if (rtInfo.isDefaultRecordTypeMapping()) {
System.debug(rtInfo);
}
}
The default record type for User A will be printed. If User B were to run the same code and was assigned to a different profile with a different default record type, that user's default record type would be printed.
The same is true through the API with describeSObject()
for SOAP or /services/data/v27.0/sobjects/:object/describe
for REST.