Why 4000 here vs 4090 (why not 4096 ?) above ?
If we have a small number of size thresholds, we can document the things that get truncated in a single descriptive list indexed by size, indicating the things truncated to that size.  Having a simple
* 256: class names, variable names
* 1024: a single string value
* 4096: the text on one line of a *.cf file, the value of an @variable

(obviously, I'm just making up the entries) with just a few entries, each mapped to a few things, is easier for users to make sense of than having lots of different sizes, some quite close to one another, with seemingly similar kinds of things (apparently) arbitrarily limited to different sizes.
* 255: variable names
* 256: class names except ...
* 944: length of the text specifying the value of a class
* 1000: class name when activated one way
* 1024: class name when activated a different way
* 4000: value of an @variable
* 4016: length of lines in a module protocol file
* 4090: content of an =name=... directive
* 4096: length of a line in a *.cf file