What is the difference between using theme_table() and theme('table', array())?
It's not the same.

theme() function is some kind of wrapper for specified theme functions.

It's recommended to use theme() function instead of direct calls, so theme('item_list', array()) is the right way.