When are session IDs appropriate for a search engine friendly website? The quick answer to that is… wait for it… NEVER!
When you require session IDs to be assigned to your visitors a unique ID string is attached to the URL of your site each time a visitor comes to your site. Let’s say I’m on your site and looking at your products or services. When a session ID is assigned the URL might look something like this: http://www.yoursite.com/about-us.htm?id=9879834023 today and http://www.yoursite.com/about-us.htm?id=9879868496 tomorrow. No big deal for the user, but it is a big deal for the search engine. As far as they are concerned, you have an indefinite number of About Us pages, each one with the exact same content. This creates duplicate content issues that you’d be better off avoiding altogether.
If you need to keep track of individual users on your site in order to track their shopping cart activity or purchases, consider using cookies instead of session IDs. Alternately, you could assign a session ID only after a product is added to the shopping basket. This can help eliminate a large part of the search engine indexing loop session IDs cause, allowing the engine to index all content pages up to the point of following a link that goes to a shopping cart.