In one of my GObjects I create a signal that passes a const gchar * as argument (i.e. the user must not free it). I have tried to add G_SIGNAL_TYPE_STATIC_SCOPE to it, but GtkDoc still documents the argument as char * (instead of const char *).
No. The signal machinery has no idea what a “const” is. Arguments are stored and marshalled as GValue, and the value holds the data. The “static scope” just means that the value is not copied around during the signal emission; it does not mean it has to be handled as a constant value (as much as C even has constant values).
No, there’s no way to do that. Gtk-doc extracts the signal information by querying the type system, and the type system only knows that G_TYPE_CHAR is represented by gchararray, which is char*. Constness is not known at that level.