To clarify: preparsecode will do some operations to any bbcode to sanitise it (like strip 'html' bbcode from non admins), but it will also do expansions on things like /me and reformat certain URL type bbcodes to use full URLs.
This is a particularly tricky situation - because while a signature may be shorter than the limit, by the time it's preparsed it will may well go over the limit - and it may prevent subsequent saves to the signature too (if for example a URL is expanded, and it goes from limit - 1 to over the limit, you won't be able to save that signature even unchanged), and that's before we get into the realms of dealing with the line breaks becoming br tags.
What we might have to do is move the preparsecode before the length test, but proceed to flatten line breaks to a single character for the purposes of fairness.
This is a particularly tricky situation - because while a signature may be shorter than the limit, by the time it's preparsed it will may well go over the limit - and it may prevent subsequent saves to the signature too (if for example a URL is expanded, and it goes from limit - 1 to over the limit, you won't be able to save that signature even unchanged), and that's before we get into the realms of dealing with the line breaks becoming br tags.
What we might have to do is move the preparsecode before the length test, but proceed to flatten line breaks to a single character for the purposes of fairness.