S1) is true
In BFS vertices are added to the queue level by level. Intially all nodes that are adjacent to the start vertex is added the to queue and then the start vertex is marked as discovered. Then a vertex is removed from the queue and all its adjacent vertices are added to the queue if they were not discovered earlier. This is done iteratively. So at any point of time the vertices in the queue are on the same distance from the start vertex or they are one level further.
S2) is false from above explanation.
S3) need not be true always.