Why are they deprecated?
Well, the fundamental reason is that the API was poorly designed. The mysqli library was created as a direct replacement for it, with better API design.
Yes, there are issues with the internal code for the library which means that it needs to be replaced, but if the API had been better designed in the first place, the mysqli library need not have been written; the improved code could simply have been swapped in to the existing library and we as developers could have carried on using the existing functions without needing to even know that things had changed internally.
However, that wasn't the case. The original API did have some critical design flaws which meant that when the PHP developers wanted to improve things, there were issues that meant that they could not do this.
Therefore, the best course of action for them was to provide a new API and deprecate the old one.