it really depends on what your game design is, scrolling background, static, tile based,
like say, i have an adventure game and each room has a background or is a minigame then i would use separate rooms, my menu system is kept off to the side of the room and scrolls in when activated
so i need the menu to be persistant between rooms and room size to be compatable with each other
but say, i have a side scroller, tile based, then i would use one room large tiled background and the guis to stay put in one place like a score
then i would have the viewport at the desired game window and scroll it with the player movements, and maybe some special rooms offscreen like caves to warp into
and if i want a bigger game then i would add another room with maybe a different tile set, now im in the jungle
you dont need a room for each object, maybe a death room or cut scenes or different levels or a pause room maybe init(which can be done during the splash screen so the user doesnt have any delay before playing)
i don't like load screens, i think they loading can be snuck in without any user delay,
the menu could be in an init room and if kept persistant it doesnt even have to be GUi, just use a hotkey and activate/deactivate the visibility or keep it offscreen and fly it in
i usually start my games with a splash screen, then to a new/continue and options menu room, (this menu is not persistant) only needed when starting or restarting so i wouldnt want it in my game room
that also initializes stuff
then to the game which has a persistant menu, like pause where i want it to stay in game,
you can have stuff off screen (outside the grid) and bring them in when needed like menus
most of the time i have seen this problem is when GUIs are drawn with exact co-ordinates with different room sizes
if you want a GUI object like a score, make a draw_gui event and just draw_self and if you leave it there it will scale between rooms there is no need to resize it even if room sizes are different
which i think is bad practice, gamemaker automates a lot of stuff, most of the scaling problems i see are from poor planning at the beginning
and people try to override gamemakers scaling
thats when scaling becomes the problem
if you just drop your gui object on the screen gamemaker will scale it between rooms, it you then use its x/y instead of 500/20 the x/y will be scaled to the room size, the the 500/20 will be placed at thoose co-ordinates
so if your roomsize is different it will not match, if that makes sense
if you plan a little in the beginning like tilesets you can avoid a lot of headaches later
ill try to post a few pics of what im talking about and hope that helps