Counters and different select options seem to allow only to make sure that the same stimulus is not selected in the consecutive trial but not throughout the whole block, right
No. All you need to do is use the same <counter> or <list> for both <picture> elements. Here's a quick example:
<text atext>
/ items = ("A1", "A2", "A3", "A4")
/ select = mycounter
</text>
<text btext>
/ items = ("B1", "B2", "B3", "B4")
/ select = mycounter
</text>
<counter mycounter>
/ select = noreplace(1-4)
</counter>
<trial atrial>
/ stimulusframes = [1=atext]
/ validresponse = (57)
</trial>
<trial btrial>
/ stimulusframes = [1=btext]
/ validresponse = (57)
</trial>
<block myblock>
/ trials = [1-4=noreplace(atrial, btrial)]
</block>