It's bad for developer who wants to develop proprietary code using GPL licenced code, it's a great licence for developers who want to benefit from any enhancements made to their code.
GPL is not for proprietary code as it exists entirely to keep the source code in all it's derivative forms open
, as such it's an anti-thesis to proprietary code.
No you don't have to, you choose to. Just like the creator of that GPL licenced code chose
to licence it as GPL, because he/she likely wanted any modifications made to the code made available to them.