It seems like you are asking about adding your snippets to theme's functions.php that is developed by someone else. Or put those snippets in the site specific plugin.
If you want to avoid your snippets and customizations of functions.php to be overridden by the theme update then you should use a child theme.
Now how can you decide to put the code in functions.php or in a site specific plugin. If the snippet is about adding functionality to theme, like registering thumnail sizes, or registering menu's, or sidebars then it must be part of theme functions.php
If the snippet is about the site's functionality then it must go into the site-specific plugin, for example registering custom post types, custom taxonomies or may custom permalink structure.
When I am not able to decide where to put the code by above criteria, I ask my self do I need this snippet when later I switch the theme if the answer is yes the snippet goes to the plugin and if the answer is no the snippet goes to the functions.php.