- will select now immediately let me know that the socket is readable?
Yes.
What, if in step 5, the peer does not send me any data but say, since a FIN. Will select still tell me that the socket is readable
Yes.
in summary, the question is if select(or any of its variants such as epoll) indicate that a socket is readable if there has been any activity on the socket prior to including the socket in the list of monitored file descriptors and assuming that the application has read no data from the socket
Yes.
NB 'Prior to including the socket in the list of monitored file descriptors' doesn't really mean anything. The operating system doesn't know when you did that. It only knows that you called select()
with that list.