Thank you for your reply! Yes, from CLI pov, the tailf:cli-delete-when-empty annotation worked as expected. The problem is only with NETCONF RPC. I saw in another thread: Setting "no" to leaf deletes entire list - #4 by cohult , someone mentioned this annotation works only for CLI.
Thank you very much for confirming it!