A: Only if the flow is set to loop. By default, a contact goes through a Flow once. A contact that reaches the end has completed the flow and does not enter it again. If a contact no longer meets the segment criteria and later meets them again, they continue from the step where they left off. They do not start over.
To let contacts go through the flow again, set the flow's end point to Loop flow (see Q: Can I make a flow start over again?). Contacts that reach the end then wait for the delay you set and start over from the beginning, as long as they are still in the flow's segment. Contacts that reached the flow goal, or matched an End flow if... condition, leave the flow and do not start over.