I have found a possible issue with the dead code detection. Given the following code:
using(var connection = new SqlConnection(connectionString))
using(var transaction = connection.BeginTransaction())
SqlHelper.ExecuteNonQuery(transaction, procedureName, parameters);
the final line is marked as unreachable - which is false. If any exceptions happen inside of either <c>using</c> expression, then the last line will be reached. Only in the case where no exceptions happen is it unreachable.