I don't think there is a signficant difference in performance. If you look at the execution plans, SQL Server embeds the filtering in the data loading step. This is occurring when the data is read from disk and loaded into the disk pages. A few cycles spent making one faster than the other is going to have basically no effect compared to the vagaries of I/O.
One typical implementation of the "in" operator would be as a small hash table. For three elements, this could easily be slower than sequential comparisons. However, for more comparisons the "in" approach would be faster. This would be especially true for numbers, since built in hardware comparisons wouild be quite fast. Also remember, though, that the compiler knows what is in the "in" list, so it can choose to do sequential comparisons if the database designers think that is a worthwhile optimization. I doubt they would think so, though.
To respond to Aaron's comment. My belief is based on the two errors that IN can return:
Error 8623:
The query processor ran out of internal resources and could not produce a query plan. This is a rare event and only expected for extremely complex queries or queries that reference a very large number of tables or partitions. Please simplify the query. If you believe you have received this message in error, contact Customer Support Services for more information.
Error 8632:
Internal error: An expression services limit has been reached. Please look for potentially complex expressions in your query, and try to simplify them.
(http://msdn.microsoft.com/en-us/library/ms177682.aspx)
I am not familiar with these errors on logical formulations on the WHERE clause. Hence, I made the perhaps rash assumption that the underlying implementation is using hash tables.