Thank you.
Just replace the X[i] [Distributed] dist with the pattern:
"wrong definition"-> Xi[x_,imax_]:=Table[x[i], {i, imax}] \[Distributed] dist
"new definition"-> distXi[x_,imax_]:=Table[x[i] \[Distributed] dist, {i, imax}]
Now the example is running OK if I assign a value to imax, for example, imax=3.
However, now I see that the problem is in running sums, not expectations: the result can turn very "ugly" if imax is a very big number.
It is a way to evaluate sums without explicit, numeric iterators? I don't want to have kilometric expressions for big imax values, specially for more complicated distributions or for more complicated functions than expectations, like variances.