Tested the above code on desktop safari and desktop chrome, Both won't refresh the item template in Sencha Touch 2.1. Updated it too to remove the getCmp references. Either way it still doesn't seem to work like it used to. I looked through the documentation for any other ways to force the list to refresh and I don't see one.
Also tried adding: console.log(this.up('list').getItemTpl());
to make sure the template is actually being updated, and it looks like it is. I just can't get it to actually redraw the list, even if I reload the store attached to it or even switch stores.
The documentation for refresh() states that it "Refreshes the view by reloading the data from the store and re-rendering the template" but it doesn't seem to work that way.