In general, a single producer for all topics will be more network efficient.
If the kafka client sees more than one topic+partition on the same Kafka Node, it can send messages for both topic+partitions in a single message. Kafka optimizes for message batches so this is efficient.
In addition, your web servers only need to maintain at-most one tcp connection to each Kafka node, instead of one connection per producer, per node.
For more info on Kafka's design: https://kafka.apache.org/documentation.html#design
As you mention in comments, lock contention may become a limiting factor, YMMV.