Using a subquery is a poor idea. That's what joins are for. You obviously have never worked on databases that get big.
Are you sure? Seen the Execution Plan have we? Thought not.
Don't need to. 9 times out of 10 a join on two columns with appropriate indexes will generate a better execution plan than using IN, which ends up using a hash/match algorithm.
agree. also avoids unneccessary table scans.