Our static analysis tool complains about a \"useless type qualifier on return type\" when we have prototypes in header files such as:
const int foo();
You can use a different technique to illustrate your intent without making the tools unhappy.
#define CONST_RETURN CONST_RETURN int foo();
You don't have a problem with const char * because that's declaring a pointer to constant chars, not a constant pointer.
const char *