What I do, is if I'm saving enough data that it would clutter the CLI, I save it to a data file. (Generally, more than 2 variables.) Otherwise, I save it to a property (user preference). Bonus; if you have lots of once-daily stuff, you can still save it to data files, and use a single user preference to control / monitor when the file needs to be reset / blanked.
Also, for anything that might be of value to other scripts (either currently existing or even just "I could see it happening" scenarios), I truly suggest using zlib vars. You can get into some even wonkier stuff using my std_lib (or similar methods) if you want (saving lists into properties or zlib vars).
Keep in mind, of those using KoLmafia, some rarely / never have the CLI visible, and won't care either way (relay browser people). They won't really care if you keep the CLI clean or not. Those who
do pay attention to the CLI tend to be the types of folks who
want to know what's going on, and therefore are more likely to dislike hidden property changes. I would postulate that such folks would be much less bothered by CLI clutter than they would by hidden script behavior -- unless it's immediately apparent that tons of properties are being set, when the data should be saved in a file.
Edit to add:
Argh, hit "post" and THEN I remember a point I'd wanted to make the last time this came up!
I, for one, would have no problem with a "silent" option for any property-setting that worked on custom properties, ie those that mafia doesn't set itself. I just don't want any of the inherent mafia properties set without my knowledge.
Also, some scripts simply
have to go the mass-property-setting route. For an excellent example of how to do this in a way where the user is kept "in the loop" I recommend checking out Bale's "newLife.ash", which sets a mass of choiceAdventure properties, but also gives a bit more info via the choice-setting wrapper function he uses. This is, IMO, "The way to go" when setting lots of properties is necessary, and helped me find a couple that were worthy of "tweaking." (Which I likely would have missed if the script had simply set the properties without additional info.)