Forged pistons sort the whole thing out. I can understand why Subaru might have made the choices they did, but having realised they made the wrong call, they should have come up with a better solution than just swopping short blocks like for like.
It can be done from £2500 drive in drive out, although I'd want to do more while I was there.
The trouble with an Impreza engine is the need to take the whole thing absolutely to bits. Having got there, a full gasket set is £425 plus vat for genuine Subaru parts. You daren't use anything else! After all that bother, and to make sure everything's going to be pukka, you'd want to fit new bearings while you're there. Maybe an uprated oil pump. You'd want to make certain the new pistons are going to be a good fit, so you'd fit stress plates and check the bore tolerances. It turns out the bore isn't true! - not that unusual, so you'd want to bore to the next oversize and hone to fit. Now you're getting somewhere, but the cost has gone up.
Cleanliness is what makes the difference with work like this. Having had to put up with engine problems you don't want to go back there again, so you have to be super fussy about getting in everywhere to make sure all the little bits of crap that can get in an engine are removed, including stripping out gallery plugs etc, cleaning the parts at every step, and assembling in a clean room.
Doing it nicely, I'd say it should cost between £3500 and £5000 drive in drive out, inc vat, depending on parts chosen.
The shame is these cars are great! I've done many thousands of miles in them, running customers cars in, and testing the results. They are properly grown up cars and very nice to live with. In my view, well worth going the extra mile for.