Is it better to create a CPT without a plugin?

Best Practices Question: My theme is finicky with plugins and already takes its time on page loads, so I try not to add plugins for small things I can easily code into my child theme. Is it better to use a PU for creating CPTs, or can I just put the snippet into the functions.php on the child theme and accomplish the same thing just as efficiently?

If I do hardcode it, can I use an 'if' statement to isolate the CPT to a specific site in my network?