Would work out almost to be the same. Let know. 
In summary, with the change as well:
- there is no other way to send tag level `encodeSpaces` information to `renderSelectOptions`, as it defaults across all `tags`. So keeping `encodeSpaces` param at function header level is same as keeping it within `tagOptions` 
- In `dropDownList` and `listBox`: Would still need a code change. Need to unset `options['encodeSpaces']` after calling `renderSelectOptions` and before rendering the HTML `select` 
- The `tagOptions` within `renderSelectOptions` will need to be separately parsed to extract `encodeSpaces` with each recursive call.