По семантике понятно: если функция принимает "type*", она имеет
право менять объект по указателю, а передаваемый указатель "type
const*" подразумевает, что менять объект нельзя. Кстати, когда
наоборот, передавать можно, и компилятор ругаться не станет.