Is this behavior of ++ and -- intended?

--/2 and ++/2 are “right to left” associative, x -- [:a] -- [:c] is therefore equivalent to x -- ([:a] -- [:c]).

As [:a] without [:c] is still [:a], only :a gets removed from x then.