The problem is that the code doesn't know why it fills a polygon, whether it'd be a light background fill or whether it will be a solid fill (like in the little arrow of a BJT). So there can't be a solution that works differently for titlebox in rendering.

There are the following possible cases with any exporter:

sch-rnd implements 1 and 4 in ps, eps and png exports. There's a new setting called fill-gray-threshold which is in percentage between 0 (dark black) and 100 (bright white). It affects only polygon fills. If a fill color is brighter than the set percentage, the code will do a proportional gray fill, else it keeps black (for the contrast). Default value is 80%.

It is not done in color export, so 1 is kept intact.