You do not have to restart Splunk if you define/configure your lookups through Manager > Lookups in the UI. Here's an example:
You can just as easily make changes via the CLI. Since search is a separate process, it refreshes search-time configurations on initialization.
Can't seem to find information on adding a lookup table via the CLI. Can you provide a link or example? I assume you're not talking about changing config files in CLI, as those require a restart.
so you'd create a lookups directory in an app and plunk them in there: