Если посмотреть метод crm.contact.fields то можно увидеть пользовательские типы crm_company и crm_lead (и другие) При этом существует стандартный тип "crm", с настройками SETTINGS.
В подолжении развитии идеи: https://idea.1c-bitrix.ru/39468/ предлагаю сломать в именовании типа обратную совместимость и заменить "crm_lead" на более универсальный "crm" с настройками. При этом, так как поля содержат только один тип то содержать они будут так же идентификаторы (т.е. по составу данных обратная совместимость будет).