Great! Sounds like you're getting the concepts now.
I myself have no option but to use Session Scope at the moment, since my major apps are based on RichFaces 3 and moving to RichFaces 4 is going to be about as much work as people had when VB.Net replaced VB 6. The people who pay me cannot spare the time or money for that at the moment. RichFaces 3 gives me some of the more useful JSF2 features, but not all of them. I could use the JSF2 Custom scope, I think, but that particular feature is very crude at the moment.
You have basically 2 options with Session Scope. One is to do nothing and let the bean remain in the session. If you do this, you'll need to re-initialize it at the beginning of each CRUD workflow you do.
The other is to make the bean delete itself at the end of each workflow. It's a good idea to also re-initialize at the beginning of the next workflow, in case the deletion doesn't get done, but by deleting the backing bean, you save session resources. I have a utility class called "JSFUtils" where I put JSF-specific utility functions in order to keep my regular backing beans as POJO-like as possible (and make them easier to
test offline). One method I put in there is a "bean remover" that obtains the HttpSession object from the FacesContext and removes the bean whose name is passed to the method from the HttpSession.
Conversation Scope is doing basically the same thing, except that the mechanism is part of the newer CDI standard. As part of the re-initialize method, you would begin a conversation and when you navigate out of the workflow, the action method that leaves the workflow would end the conversation.