"Jailbreaks" work because there are no "jails" in the AI model.
The models are enormous collections of interconnected statistics. Your "prompt" starts the model to following a path through its statistics to generate a new text.
To try and prevent generation of unwanted things, the operators prepend a bunch of text to your prompt in order to influence where the path starts.
The text you actually use as your prompt can then push the start of the path around. With a little care, you can push the path to a place that delivers the results you want - regardless of what the AI operator has prepended to your text.
Look at a large language model (LLM) chatbot as a hedge. There's thousands upon thousands of bush branches interconnected to make up a hedge. You can start at some leaf on the hedge and follow it into the hedge to further branches and trunks and leaves.
The text you give the LLM picks an external leaf on the hedge. The LLM then follows that leaf into the hedge, where each junction is a word (or word fragment.)
The text that is prepended to your prompt (that attempts to avoid bad things) pushes your starting point around the hedge to somewhere that has fewer bad things inside it.
Your prompt can then push the starting point around the hedge to start in a place that lets you get access to the bad things that the operator wants to avoid.
The only somewhat effective way to prevent the chatbot from producing bad outputs is to eliminate the bad stuff from the stuff that was used to generate the model in the first place - and even that won't prevent all of it.