I understand what you are trying to do. I was just attempting to do the same thing earlier today... but to no avail. I had to do some custom XSL work using xd:preserve to get the results I wanted.
As for your situation, you can set up a simple .xml file as a secondary data source and do your concatenation into that field. This will keep it out of the main DOM and your view can have a basic expression box in it bound to that secondary data field. You would just need to write the code to concatenate the values the way you want.

Signature
Greg Collins [InfoPath MVP]
Please visit: http://www.InfoPathDev.com
I'm trying to concatenate all the item names that are selected from a
repeating table and display it in the expression box without referencing a
node that stores the concatenation programmatically (since I do NOT want to
store this in the primary DOM.)
using something like concat(itemName[itemSelected="yes"]) only shows the
first result.
Is there are any way to achieve my goal without storing the result in the
primary DOM (and hopefully not deleting later or something?)
Thanks in advance.