There is a difference internally in how cursors are handled when using ADO.NET instead of ODBC. If you have BEHAVIOUR=UNOPTIMIZED the cursor will be stored in an underlying Dataset.
The actual behavior between MAINFRAME and UNOPTIMIZED if you are not using updateable cursors should not change except that you should experience better performance.
The only incompatibility that I have seen that causes problems is that with MAINFRAME open cursors are closed whenever a COMMIT is done on the current transaction and with UNOPTIMIZED they are not. The workaround for this is to define the cursor using the WITH HOLD phrase.