Es la forma correcta de hacerlo. Si no vas a cambiar la información apuntada tienes que definirlo de esa forma, de lo contrario das lugar a malas interpretaciones.
Si alguien que no tiene a mano la implementación y usa esa función para garantizar que esa información apuntada por col no sea modificada debería crear una copia, haciendo el código menos eficiente (y de hecho reservar y liberar memoria dinámicamente son operaciones que consumen muchísimo tiempo de CPU, comparadas con operaciones matemáticas, lógicas, control de flujo, etc). Teniendo "const char *col" le garantiza que no necesita hacer la copia por que esos datos no serán modificados.
Incluso si quisieras que el compilador te avise si por accidente estás modificando el puntero para que apunte a otro dato sería bueno que pongas
"const char * const col".
Evidentemente esto no es 100% seguro por que es posible usar casting para quitar el "const", pero lo anterior sólo se debería hacer en caso que necesitemos pasar col como parámetro a otra función que no fue bien definida pero de la que estamos seguros que no modifica los datos apuntados por col, es decir similar a la que posteaste.