Конкретно это определение - не про типы, это про то, как мы их используем. С точки зрения компилятора, это доп. информация о нашем коде для проверки его на правильность, с точки зрения программиста - высокоуровневое описание нашей программы. Но это всё определения неформальные скорее
Как раз-таки это единственное осмысленное определение категории программирования "тип данных". "Тип данных" существует только в рамках компиляторов и интерпретаторов, при этом для разных компиляторов один и тот же тип может отличаться размерностью, допустимыми операциями и проч. Тип данных - это всего лишь абстракция, которую мы искусственно вводим для удобства программирования. В ассемблере мы должны сами должны помнить, что хранится в ячейке памяти, удобнее переложить эту работу на программу, компилятор.
Регистры же - просто быстрая память. С тем же успехом регистров могло не быть, тогда каждое используемое значение пришлось бы брать из памяти, что сильно замедлило бы программы, но и только.
Регистры - категория аппаратного обеспечения, типы данных - категория программирования.