That's my css/source file structure: https://i.stack.imgur.com/5tNxJ.png
I made grunt clean, theme exec, theme less, watch. Watch is responsive to any less file changes accept of _theme.less and local.less located level us (css/local.less). Local.less was already added to theme.js:
files: [ 'css/styles-m', 'css/styles-l', 'css/local' ],
local and _theme compiling well with grunt less but not responsive for grunt watch. The problem is related ot this two file only, all others including modules extends are watching by grunt ok.
Grunt less output:
Running "less:base" (less) task
File pub/static/frontend/MaxTheme/base/en_US/css/styles-m.css created: 307.72 kB → 529.6 kB
File pub/static/frontend/MaxTheme/base/en_US/css/styles-l.css created: 51.13 kB → 89.83 kB
File pub/static/frontend/MaxTheme/base/en_US/css/local.css created: 25 B → 242 B
UPD: Just checked /pub/static, the two less files placed not as symlinks, but as regular less files.