The smallest slice of memory that can be set aside in S7 is 2 bytes, so an INT will use up 2 Bytes, a single BOOL will use up 2 bytes, but several consecutive BOOLs will only also use up 2 Bytes. A DINT will use up 4 Bytes.
If you create your program for an S7-1500 and chose "optimised block access". Then TIA will sort the data so that it is packed optimally, no matter which order you declare it. On the other hand, you lose the ability to adress the data absolutely.
But dont worry about the memory usage when using FBs. It was in the olden days that you had 23 and a ½ Byte memory and every instruction took several milliseconds to execute.
Today you can concentrate on creating the code that is the easiest to understand and maintain, practically without thinking about memory usage and and execution speed. Also it is perfectly OK to not select the "optimised block access". Memeory usage and speed will still be OK.