I tried this in the same spectre version that you're using - and it
works fine:
//
parameters newarea=3u
subckt mycap (plus minus)
parameters area=1u c=0.1p
I1 (plus minus) capacitor c=c scale=area/1u
ends mycap
subckt block (n2 n1)
//V1 (n1 0) vsource type=dc dc=1
C1 (n1 0) mycap area=1u c=1p
//V2 (n2 0) vsource type=dc dc=1
C\<2\> (n2 0) mycap area=2u c=2p
ends block
top (n2 n1) block
element0 info what=inst where=screen
alt1 alter sub=top.C1 param=c value=3p
element1 info what=inst where=screen
alt2 alter sub=top.C\<2\> param=c value=5p
element2 info what=inst where=screen
alt3 alter sub=top.C\<2\> param=area value=newarea
element3 info what=inst where=screen
Can you try this and see if it works?
Andrew