I use SQL server, so I'm really not sure. But when you open the attribute table does the count at the bottom have a asterick (beside the count)? (0 out of *300)?
I know that with large tables in Arc 9 and 10 ArcMap does not display all the results only the first 2000, but in your case it seems it should show all. When it only shows a subset of the data you have to click the click the 'Move to End of Table' button towards the bottom left had side of the attribute table.
Perhaps it is a compatibility issue or a bug, hopefully someone familiar with your setup or someone from ESRI will be able to answer your question better.
Are you really using ArcSDE 9.1 (which has been retired for years) or
ArcSDE 9.3.1 (which has been retired for months)?
None of the ArcGIS 10.x releases are compatible with ArcSDE 9.1.
In order to find out what's happening, you'd need to provide more
details on the contents of the tables and the exact syntax of the