Sorry for picking up in such an old issue, but I'm having a somewhat similar problem:
I have point layer created through an SQL statement executed directly in the PostgreSQL / PostGIS database and it doesn't appear in the data list in ArcGIS Catalog when I connect to the database.
I already registered and indexed the geometry column in the database, defined a primary key and it works well within QGIS.
I have tried the suggestion described above of "Add Query Layer" and it works fine!
I really don't understand why it doesn't show in ArcCatalog, because I have several datasets, spatial and non-spatial, with SDE geometries and PostGIS geometries, and I'm having no trouble with them...
Any thoughts on how to correct this?