Although it is possible there is more than one inducement, I can say definitively that symlinking Packages leads to settings and plugins no longer reloading.
Bizarrely, in limited testing I find I can symlink either higher (e.g. the “Sublime Text 3” folder in Application Support) or lower (e.g. a folder within Packages) and it’s not a problem.
Here is an opensnoop trace of the sublime process and the plugin_host process with respect to my plugin folder, with and without symlinking the Packages folder, after I touch the plugin file to induce a reload.
Without a symlink:
# sublime
1655713725 2014 Mar 16 09:04:16 501 28792 130 0 /Users/paulp/Library/Application Support/Sublime Text 3/Packages/paulp-plugin/paulp.py Sublime Text\0
1657270258 2014 Mar 16 09:04:18 501 28792 130 0 /Users/paulp/Library/Application Support/Sublime Text 3/Packages/paulp-plugin/.sublcd9.tmp Sublime Text\0
1657849595 2014 Mar 16 09:04:18 501 28792 130 0 /Users/paulp/Library/Application Support/Sublime Text 3/Packages/paulp-plugin Sublime Text\0
# plugin_host
1657849989 2014 Mar 16 09:04:18 501 28800 -1 2 /Users/paulp/Library/Application Support/Sublime Text 3/Packages/paulp-plugin/__pycache__/paulp.cpython-33.pyc plugin_host\0
1657850021 2014 Mar 16 09:04:18 501 28800 78 0 /Users/paulp/Library/Application Support/Sublime Text 3/Packages/paulp-plugin/paulp.py plugin_host\0
And with a symlink. Notice how the first two paths are in terms of the symlink, and the third has resolved the symlink to the underlying directory. This suggests a naive string comparison between paths is taking place and failing when there’s a symlink. It’s a very common bug when people invent their own path handling code rather than using a path library where such things have been taken into account.
# sublime
1754694154 2014 Mar 16 09:05:55 501 29390 94 0 /Users/paulp/Library/Application Support/Sublime Text 3/Packages/paulp-plugin/paulp.py Sublime Text\0
1755726532 2014 Mar 16 09:05:56 501 29390 94 0 /Users/paulp/Library/Application Support/Sublime Text 3/Packages/paulp-plugin/.sublaf1.tmp Sublime Text\0
1755867349 2014 Mar 16 09:05:56 501 29390 94 0 /inst/sublime/Packages/paulp-plugin Sublime Text\0
# plugin_host
# ... nothing, that's the point
If https://github.com/SublimeText/Issues/issues/27 is any guide, I’ll have to fix this myself. But my enthusiasm is dampened somewhat by the prospect of having to disassemble the freaking binary, so hey there sublime developer, what would it take to get this looked at?