The location list is local to the current window so you can have as many location lists as windows: 30 windows? No problem, here are your 30 concurrent location lists.
The quickfix list is global so you can’t have more than one available at a time. There are commands that allow you to replace the current quickfix list with a previous one but you can’t have two concurrent quickfix lists.
Don’t confuse the location/quickfix “lists” (the data structures) with the location/quickfix “windows” (the windows displaying the content of those data structures). The “windows” have similar behaviors but the “lists” don’t. The difference is important because those windows are thankfully not the only ways to interact with those lists: there are many commands that allow us to move through those lists without opening the associated windows and knowing the difference between those lists is key to using those commands efficiently.
Hands-on illustrated example:

-
Do
:lvim foo %infoo.txtto create a location list for the window containingfoo.txt. -
Do
:lnea few times to jump to a fewfooinfoo.txt. -
Focus on
bar.txtand do:lne. What happens? -
Now, do
:lvim bar %inbar.txtto create a location list for the window containingbar.txt. -
Do
:lnea few times. What matches do you jump to? In which buffer? In which window? -
Switch to the other window and do
:lnea few times. What happens? -
Switch again to
bar.txt. What does:lnedo? -
Now, do
:vim bar %inbar.txtto create a quickfix list. -
Do
:cna few times to jump to a fewbarinbar.txt. -
Now, focus on
foo.txt, what does:cndo?
Conclusion: the location you jump to with :lne depends on the window you are in, which makes the location list local to a window, but the error you jump to with :cn is not, which makes the quickfix list global.
Both lists have relatively clear roles IMO: the quickfix list (and thus the quickfix window) is usually and quite logically devoted to errors and the location list seems (to me) fit for search.