Here's my first post on the board.
Templar, the use of a SOHC ecu with a DOHC motor and vice versa is VERY POSSIBLE, actually. The reason being that I have a 01 SOHC motor from a legacy GT in my 97 GT . . . all using the stock 97 ecu!! It's true that the ecu's use cam angle sensors, but for both models, the ecu only monitors one cam. The trick is to use the sensor with the correct amount of teeth. The same holds true for the crank sensor. That being said, let me list a few things I've found when making the swap:
1. 00-01 SOHC motors use a 2-tooth crank sensor, 98 DOHC engines use a 7-tooth sensor. Not sure about the 99's. Same holds true for the cam sensors.
2. 98's and (I think 99's) have an egr valve, 00-01's do not.
3. 00-01 engines have relocated the main thrust bearing, to minimize the amount of crankshaft resonance at higher rpms.
4. 00-01 engines "supposedly" have stronger internals, but I believe the only difference was really increasing the size of the piston skirts to prevent the infamous "piston slap" found on the DOHC engines.
5. DOHC engines are NOTORIOUS for blown headgaskets. I believe this fact as I blew my headgaskets at 100,000 miles. This was my motivation for swapping in a 01 engine.
6. 00-01 engines had a 10.0:1 compression ratio, 98-99's had a 9.7:1 compression ratio.
7. 98's used a hot wire MAF, 99's used a hot film MAF, and 00-01's used a MAP sensor.
8. DOHC intake manifolds bolt up to DOHC heads, SOHC intake manifolds bolt up to SOHC heads. You CAN NOT swap them. But all Subaru heads bolt up to all Subaru blocks.
I could document the actual engine swap, if you guys want, but I'll save that for a second post, just in case you guys are actually interested in it.
Hope this helps,
Jason