As with all things, there is a ton of nuance based on the situation, but my default is always to keep the search in code. I am not a SuiteApp distributor, so the vast majority of my experience is in account customization projects. In that capacity, I have found it exceedingly rare that a search needs to both drive code and be flexible for users. It's most likely I would just be providing two separate searches in that instance - one for the users to play with, and one that drives the code. If somehow I did need to provide users the ability to make it flexible, I'd still be ensuring that the code was always adding the columns it needed, regardless of whether those columns were already in the saved search definition.