Из-за чего так.. сначала думал, что какой-то баг.
Потом решил, что все-таки нет.
Так как snip1 кешируется, то исполняется он только после очистки кеша. А в большинстве случаев, он просто выводит то, что сохранено в кеше и ничего больше не делает. Естественно плейсхолдер он тоже не устанавливает!
Если добавить snip3, то после очистки кеша исполнятся все сниппеты (и установится плейсхолдер) и snip3 вернет значение плейсхолдера. Потом все закешируется и далее snip1 не будет выводить ничего, а snip3 будет выдавать значение плейсхолдера из кеша. В итоге все отлично работает.
Способ получше - это первое, что мне пришло в голову:
[!snip2? &val=`[+placeholder+]`!]
Утитывая все вышенаписаное и то, что [+placeholder+] должно кешироваться, все должно работать. Но как-то оно у меня через раз срабатывает :-/
Нужно будет еще разобраться.