Refreshing Project Library Script or creating bindings with gateway script values

I had already been using a global list to store the data. Looking into the way that global variables worked, I found a post in a different thread about updating global variables and saw that I missed the "global [variable]" line within my function which is why it wasn't updating.
-link to other thread

My script now contains the following code and works correctly.

In perspective, I'm using the "getrobot" function in order to reference different parts of the variable "robots" to display the data. Why would it be better to take all the data and write it to a tag, then create a display using tag bindings instead of just creating the display using expression bindings like the following?

runScript("MiRData.getrobot",5000,[index number],[dictionary key])

"robots" is a list of dictionaries