AFIAK there is no maximum number of textures per object. Either that, or it's something fairly unreachable, like 64 or something.
HOWEVER, and this is a big however, the smaller number of textures per object, the better. If each ship only had one or two different textures, you would definately see a substantial performance increase.
Hardware TnL affords a performance increase mostly due to the way things are sent to the GPU. Basically this means that we do this (in pseudo code):
For each model:
Find all vertices with texture A
Group those together
Prepare them with the CPU
Send them to the GPU
Find all vertices with texture B
etc...
Now, out of those steps, the most time consuming and expensive is to prepare them with the CPU. Once we send them to the GPU, it does it's job very quickly. Therefore, we want to make the number of times preparing the batches as small as possible, and the only way to do this is to use less textures. Then we can send tons and tons of vertices to the GPU and let it chew on those for a while while we do other stuff.
The above explanation is not purely accurate, but in this case suffices.
The pratical upshot is that any recent graphics engine is limited in performance by the number of textures that it uses, because changing textures is expensive and inefficient for a number of reasons. The more vertices that can be sent to a card at a given time, the better.