I found some strange behavior of smarty. When I try to append array with {append} or {$array[] = 1} it re-creates existing array with only assigned item in it. Subsequental appends works ok.
...
I'm using approach 'php from templates', not common 'templates from php'. So, when I call template fetch(), I have smarty object already initialized inside application.