To quote the php.net manual,
creates a session or resumes the current one based on the current session id that's being passed
via a request, such as GET, POST, or a cookie.
-- Get and/or set the current session id
So, the session_id function sets (or returns) the id for the session & the session_start gets all the info held in the current session. Does that make sense?
In our shopping cart example, we are only using the session id variable to store products in the temporary shopping cart, but you could use whatever you wanted and reference it accordingly, such as username, preferences (like language), browser used, etc.
As far as passing session id's through the URL, we chose not to do it in our cart example because if someone saved a page as a bookmark, with an old session ID in the URL, it would potentially screw up our temporary cart system. Likewise if you were storing personal information in your session, and you passed the session ID through the URL, that personal information could be compromised.
I hope that helps clear things up for you- you can read more about sessions at the php manual: www.php.net/manual