Hi Justin,
You don't have to use a variable to populate your table. You can just use "<AggragateName>.List" instead. Nonetheless, after create the record, you will just need to "Refresh Data" and then "Ajax Refresh".
You could see how to achieve this here: https://www.outsystems.com/training/lesson/1790/ajax-interactions
I think that when the best practices advised against using preparation data in screen actions, it means that you must avoid using all data from a record in a request. Some might think that sending all the data and preventing the server to make a new database request is a better choice. But, sending all the data from a record in the request will increment the viewstate size. With time, this could be worse than a simple database request.
"For instance, instead of using the tablerecord record data, use only the ID of the row and fetch the data from the database again is needed"
https://success.outsystems.com/Documentation/Best_Practices/Performance_and_Monitoring/Performance_Best_Practices_-_User_Interface?_gl=1*4yzan4*_ga*MTUxNTEyMDkwLjE2MTAzNjg2OTg.*_ga_ZD4DTMHWR2*MTYxMjc5MTAxNS4yOC4xLjE2MTI3OTIyNzkuNTk.
Hope it helps.
Best regards.