Yes, the parser does check for & and behaves as expected. However, sometimes (primarily when copy/pasting) an overzealous TinyMCE can double up on the & producing & which will break the snippet (one can only go so far in checking for weird stuff in the parameter list). However, it is fairly trivial to modify a snippet to accept an external config file, so the snippet only needs one parameter
[[SnippetName?config=`name`]]
Then in the beginning of the snippet code add something like
$config = isset($config) ? $config : 'default';
$configfile = 'assets/snippets/mySnippet/configs/' . $config . 'inc.php';
if(file_exists($configfile)) { include $configfile; }
This means also adding a directory in the assets/snippets/mySnippet directory, and having a file named default.inc.php there. It can be empty, or contain basic default values if desired.
Now you can create all the config files you need for different snippet calls, and in the snippet tags you only need the one parameter to indicate which config file to use. And TinyMCE can’t mess up the snippet call.