There is a convention to have library symbols' name field contain the right prefix but "??" suffix instead of number. So a resistor symbol's initial name is R??, a capacitor's is C??, an opamp's U??, etc. I've followed this convention in the standard lib.
When you initially place them, this means you will get a lot of symbols that will be combined into the same component during compilation due to name match. This may cause attribute collisions (compilation errors), especially if you start assigning different values and footprints before actually naming your symbols.
To overcome this inconvenience, I've implemented an optional feature, on by default, which renames "?" ending symbols to autogenerated unique named symbols during compilation. Note: this code does _not_ change your drawing, the concrete model, it changes only the abstract model. So your symbols are still named R?? and C?? and so on, until you rename them.
It's a similar mechanism how unnamed nets are automatically named. There is a big difference tho: in case of networks, we have to name every network at the end of the day. In case of symbols if a symbol does not have a name attribute, that means you do not want it to show up in the output ("netlist"). So this feature does not _create_ a name attribute on symbols, it only transforms existing names if they are ending in one or more "?" characters, assuming these are "yet-to-be-named" symbols.
The feature can be disabled via the plugins/std_cschem/fix_unnamed_syms config node.