As I understand the code used by WordPress to set and get the values of an option from the database is smart enough to provide a good performance in these operations, in most cases the data is cached so I do not think that a separate implementation of this code would have a significant impact in the performance of the plugin.
Also if I create an interface and wrappers to duplicate the functionality of these WordPress functions just to handle the data in a single array, it means that I will have to maintain a code that is not really relevant for the plugin because WordPress already provides these methods.
One of my co-workers suggested to follow your recommendation and provide a modular interface to interact with the database, which supposedly will allow me to execute one single database query to retrieve all the plugin’ options at once and then handle the data in a (kind of) array as you suggest.
I am not completely sure if this modification will help to speed up the plugin. The parts that are slow in the code are the ones related with the file system scanners and the HTTP requests to the API service, so I would rather focus into improve these two things than the database readers.
I will create an internal task to test this, thanks.