Those are required I think because Create SQL Query is intended for, well, queries, not NonQueries.
You could also go a little deeper and grab the connection from the session (or directly from the factory ConnectionProvider) and build your own IDbCommand:
Code:
//sketch
IDbConnection conn = factory.ConnectionProvider.GetConnection();
IDbCommand cmd = conn.CreateCommand();
cmd.CommandText = "UPDATE x set y = y + 1";
cmd.Connection = conn;
//enlist to transaction if desired
cmd.ExecuteNonQuery();
conn.Close();
As far as the sequence being incremented even after rollback: I can't speak with authority in re Firebird, but I think that might be a DB level "issue". The same thing happens in SQL with identity columns: rollbacks produce "skipped" identifiers. But really, this should never be a problem, since the identifier (and even the relationships between identifiers) is not intended to carry any meaning.