Tiling window managers typically allow you to configure that. For example with XMonad (what I use, on Linux), you can set it so that all new windows are full screen by default, it's just a line of config like `layoutHook = fullscreenFull Full`.
You can also set any number of standard layouts that you like, and toggle through them with Mod-Space. So full screen could be the primary one, two-pane split screen the secondary one, all windows visible be the 3rd one, etc.
And as others have mentioned, using this in conjunction with virtual desktops is quite powerful. E.g. moving windows between desktops is just a key combo and is very quick, so it's easy to switch between full screen and side-by-side of any two tiles just by moving one to the same desktop as the other.