All the numbers are known (click on the unit icon), so you can calculate for your own specific situation.
With pearls you upgrade speed of travel (IMO, useless) and speed of training (very useful if you train plenty of that unit and your queues are always full). Upgrading discovery will give you more strength. Doing so is useless for a few units, but for those you usually have plenty of, it pays off. Also, you pay for the discovery once, but the effect is forever.
If you're chosing between Bonnies and Subs, you're not doing it right. All 4 queues should be full non-stop.
The choice of units should be tailored to your own needs. Some cost more res, some cost more time,... do you need them for prizes, for Presidios, blocks, your own haven,... those attacking you, what do they usually send,...? This game has plethora of parameters and no one can give you a straight answer; you need to figure it out yourself.
Just a simple example: someone keeps hitting your blocks with Armada, always the same party (say, 100 Juggs). Train loads of Junks, especially if you're overflowing with rum. This is a very specific situation, but that's why it can be exploited. If that person was sending Fleet (say, 200 Frigs), you'd go for Turtle Ships instead.
Nautili and Aquanauts can, among other things, be good for trapping blocks quickly, thus saving you charts. If you're not paying for charts, that might be important for you.
Generally, a mix is advisable.
Also, using Pirates (and, maybe, Mercs, if you're a bigger player) just for prizes makes sense. Doesn't mean it's the best policy for you, but it's worth considering.