If I understand your setup correctly, I'd say no, shouldn't pose a problem. To give you an example,
<expressions>
/ rnd = noreplace(1,2)
</expressions>
<values>
/ a = 1
/ b = 1
</values>
<trial mytrial>
/ ontrialbegin = [values.a=expressions.rnd; values.b=expressions.rnd]
/ stimulustimes = [0=a; 1000=b]
/ validresponse = (noresponse)
/ trialduration = 1500
</trial>
<picture a>
/ items = myitems
/ select = values.a
</picture>
<picture b>
/ items = myitems
/ select = values.b
</picture>
<item myitems>
/ 1 = "pic01.jpg"
/ 2 = "pic02.jpg"
</item>
<block myblock>
/ trials = [1-10=mytrial]
</block>
should perform better than
<expressions>
/ rnd = noreplace(1,2)
</expressions>
<trial mytrial>
/ ontrialbegin = [picture.a.item=getitem(item.myitems, expressions.rnd);
picture.b.item=getitem(item.myitems, expressions.rnd)]
/ ontrialend = [clear(picture.a); clear(picture.b)]
/ stimulustimes = [0=a; 1000=b]
/ validresponse = (noresponse)
/ trialduration = 1500
</trial>
<picture a>
</picture>
<picture b>
</picture>
<item myitems>
/ 1 = "pic01.jpg"
/ 2 = "pic02.jpg"
</item>
<block myblock>
/ trials = [1-10=mytrial]
</block>
although -- at the surface level -- both do the same thing.