The manual is misleading, possibly due to a typo. The first of two sentences:
The $$ <variable evaluates the first precondition in the first rule for this purpose. $$ ^ and $$ + evaluate a list of all the prerequisites of rules that have already appeared for the same purpose ($$ + with repetitions and $$ ^ without).
must be qualified, like the second, adding the words: "it has already appeared."
You can verify that this correctly describes the behavior by running two makefiles:
Do 1
.SECONDEXPANSION:
foo: foo.1 $$<
@echo $+
Conclusion:
foo.1
, $$< . :
2
.SECONDEXPANSION:
foo: foo.1
foo: foo.2 $$<
@echo $+
:
foo.2 foo.1 foo.1
foo.1 foo.2
foo , foo.2 foo.1
. , $$<
foo.1 , foo.1
.