I think you are trying to do a few things here. One is to create a common set of variables you can use throughout the site. That is doable with TerminalAddict’s approach (which I elaborate on in this post). Simply create a scss file (or files) that contain the variables you want, rather than trying to use Jekyll/Liquid variables. The approach is preferred because it is portable and not tied to just Jekyll and it follows a good coding practice. I like to use this rule: sass variables are for layout and Jekyll/Liquid/Data variables are for HTML.
As for creating a scss file per page, I went down that path and ultimately realized it was a bad idea just because any time I changed one page’s details, I had to go and change a whole bunch of SCSS files so other pages looked similar.
You can choose to do it on a per-page basis if you want and I totally think that is reasonable if that is what you want. As a matter of fact, I did that for certain pages on my site and I even created re-usable HTML code that has its own matching scss file. Read on for how I did that.
In my mind, you can create as many css/scss files you desire, but you will find that compiling them into a single file is the right way to go.
Site example
I created a site for my company, Cambermast. I will walk you through the process. Maybe you already have it and I’m repeating myself, or maybe it helps. Here is the repo if you want to take a look at it:
I created a folder called _sass/abstracts and one of those files is called _variables. As you can see, it contains all the common variables I use throughout the site. This is the equivalent of creating Liquid variables using Jekyll data, but in a sass-ey way.
Further down, you can see I created another folder called _sass/layout. Here is where I create all my individual scss files. For example, you can see I have a feed of posts that I want to look unique throughout the site, so I created an individual _feed.scss file. I also have scss files for pages, posts, and so on. I create them for shared elements or individual pages as you are alluding to.
Note how I am using the sass variables for margin-left and margin-right.
Similar to the minima theme, I created a single file, in my case called _sass/cambermast.scss, that imports all the variable and layout (and mixin) scss files, combining them into one large scss file.
In the _includes folder, I create a head.html file that links to that one stylesheet. That head.html file gets re-used for every single HTML page on my site, so I do not have to re-create the HTML structure every time I create a new page. This is important as it will greatly reduce the amount of testing you have to do, reduce the number of pages you have to compile, and generally make your life easier.
The method I am showing you here is essentially mimicking how the minima theme works. As you can see in the images above, I have a lot of scss files to import with a decent amount of sass variables and unique layouts, but after all is said and done, my single compiled css file is only about 15kb, which is super small and while I say this as an assumption, I think it is a smart assumption, that the browser will cache the css after the first visit rather than re-load for each page. Unless you are creating dozens or hundreds of complex css files, I really don’t think you need to concern yourself with Jekyll building a single css file for all your pages.
Hope this helps!