I tend to think of a scene as a “chunk” of content to load from the disk into memory and then to have it all dumped when you’re done using it. It’s a great way to store a cohesive piece of static content (Like a room, as you mentioned). Consider: the bigger your scene is, the longer it will take to load and the more memory it could potentially take-up. Also if you have a lot of active objects with Update methods, there could potentially be a performance pile-up too. On the other hand, if you go the opposite way and separate your game into a thousand micro-scenes that you load on demand- in that case Unity will probably be loading scenes constantly and that will also be inefficient. You’ll have to just figure out how you want to divide-up your content.
One scene per room sounds perfectly reasonable to me, but don’t worry too much about it, because it’s pretty easy to re-arrange what content you have in each scene in the Unity editor. You can open multiple scenes at once and simply drag content from one scene to another. If you change your mind and decide that you want multiple rooms per scene or you want one room to be made from multiple smaller scenes, you can change it later.
I would say, just make a small part of your game to begin with. Find out what works for you. Once you get that to work you can take what you learn and apply that to rest of your game. Don’t try to architect your whole game before you start, because it will probably not be accurate.
Some people only use one scene in their whole game. They prefer to use other tools (like asset bundles or whatever) to manage their content. I like to use scenes, though, because they are so easy and convenient to edit in the Unity editor.
Speaking of scenes, did you know that there is such a thing as additive scene loading (i.e. loading more than one scene at a time)? My preferred way is to have one scene that’s always open. This scene has my player character and all of the important global data objects like inventory and the input manager, etc. I call it my “main scene”. Then I additive-load and unload my various locations on top of that. It’s easy to to work with in the editor too, because I can have my “main scene” open, and also open any room I want to test and I’m right there.
The amount of pitfalls that you may encounter are innumerably infinite.
If you are talking about animating UI transitions, I’m sure there are tons of tutorials about this. This is all possible but I haven’t got far-along enough to where I’ve started to worry about this yet.
I don’t know of any, but their isn’t a step-by-step tutorial for every genre. A tutorial will teach you tools that you will use in any genre, though. Whether you are making an RPG or platformer, you still use the same tools, like collision detection, animation, vector math, etc.