Should disabling a plugin that has been customized by a developer crash the site?

No, it shouldn’t. It’s perfectly possible to use these plugin functions in such a way that if the plugin is deactivated the site won’t crash. The functionality of the plugin will cease to work though, so the custom fields etc. will not appear, but the site should otherwise continue to function.

This can be accomplished by checking function_exists() before using any plugin function. If a function or template uses the plugin’s function a lot, you could just check if the function exists at the top of the template/function and exit early if it doesn’t.