I'm using ETA C API in Linux.
I see that API returns dataState "RSSL_DATA_SUSPECT" and streamState "RSSL_STREAM_CLOSED" for invalid symbols.
1. When you receive a streamState that is Open, this implies that you may still receive events for this stream. You should not need to re-subscribe. In the event where you receive a streamState that is Closed, this implies you will no longer receive any events. In this case you will need to re-subscribe. That being said, a Closed state can occur if you are not entitled to see the data, the data is not found, etc. In this case, re-subscribing would likely continually cause a Closed status.
2. The use cases may be dependent on the data source. However, you will typically see a Suspect upon a "Timeout", "Not Entitled", "Not Found".
3. A status message occurs for a specific symbol. However, there is the concept of "Item Group Use" where "You can use item groups to efficiently update the state for multiple item streams via a single group status message (instead of using multiple, individual item status messages". Refer to the Item Group Use section with the Advanced Messaging Concepts outlined in the ETA C Developers Guide.