See also /etc/e-smith/events/logrotate/S75purge-old-logs.
Ah ha. There's an rsyslog/PurgeLength configuration property that controls how long to retain log files, and defaults to 95 days if it isn't set. That almost certainly explains what's going on. But then why have logrotate installed at all? Just as a red herring?
Just did 'config setprop rsyslog PurgeLength 30 && signal-event console-save'. I'll see if that had the desired effect tomorrow.
Edit: Yes, it did. OK, so we're using a custom log rotation script with undocumented configuration properties, and a frankly strange default to keep logs for just over three months. That default can be overridden with the property setting noted above. logrotate is installed, has a config file, and additional configuration in /etc/logrotate.d/, but all of those are superfluous, as logrotate proper is never actually called. This explains quite well why the logrotate.conf settings aren't having the desired effect.
Is there any way, with SME's custom log rotation script, to compress the rotated logs?