I am looking at going from Isolation Level Read Committed to Read Committed Snapshot. I noticed in a different system this change reduced both Blocking and Deadlocks.
If anyone has ever decided making this change would not be a good idea, I would be interested in why? Just in case any concerns come up when I suggest this.
Old row versions must be kept in tempdb as long as they are needed. Could be a little, could be a lot, could be a short time, could be a long time. Depends on your particular environment.
Updated rows require 14 additional bytes per row. If you have, say, 20 rows on a page, that could be 280 bytes of overhead per page. If you don't have much free space per page, this could result in lots of page splits, which would be extremely bad for performance.
1 could still happen, although it will be vastly more rare.
2 will not happen barring a schema change taking place, or some other exclusive lock already existing on the table
3 will not happen, again except for attempted schemas changes or other things that require an exclusive lock