On a high level it's about additional dynamics to a rather static game situation. From the individual AI country's perspective it's the ability to do something about a potential future threat with less risk than outright war. It's also easier for the AI programmer to be flexible and to "bend the rules" regarding what countries to rent out condottieri to than with war declarations because 1) there are less restrictions or they can be easier ignored (especially soft ones displayed in the user interface such as AI attitude), 2) it's simply not as drastic, especially as a potential F-up (risk is mostly limited to troops put in there and then), softening impact of the chicken-and-egg problem on declaring on stronger expanding countries that aren't (yet) fighting sufficiently strong enemies even if they are a threat to everyone around.
IMO, the main problem is where it is left with insufficient troops for defending after renting, but that's difficult in general (another example: deciding how built up to force limit AI should be peace time). I'd argue cost/reward ratio isn't a problem (even with free renting). AI could use those troops to A) expand for itself to grow stronger relative to the threat, or B) against the threat directly, with condottieri belonging in category B. B is potentially a more damaging option, but which one is actually better is difficult to judge since it above all depends on the actions of third party countries. It's certainly the case that in terms of AI draining each others' resources in AIvsAI wars, outright wars are actually more damaging than renting condottieri short term to their ability to resist the human player, even though wars may produce blobbed up AI nations (but blobbing we were trying to slow down for other reasons).
Reasoning about what the AI should do or not based on what a human does is somewhat limited in the sense AI don't talk to each other, at all. Not solely because it's more complicated to implement, but also because coordinated attacks can feel like "AI cheating". Thus, coordinating attacks in practice is something the AI is way worse at than a human, leading to the (already described above) issue of strong human (and ultra strong AI) countries never being attacked mid-late game, because nobody dares to throw the first few stones. Free Condottieri is a small measure against that, if not nearly sufficient, since condottieri troop sizes tend to be outscaled.
Not saying the implementation was perfect btw, just outlining the thinking and objectives behind the up-to-1.18 behavior. I think in terms of difficulty, it will be around +/- zero due to the number of shoddy rent outs in addition to the useful ones, but dynamics/unpredictability = fun IMHO (but then, not everyone agrees apparently

).