Оба подхода должны быть функционально эквивалентны, и разница в коде для выполнения одного и другого должна быть относительно небольшой.
С точки зрения производительности, я не думаю, что это действительно будет иметь значение, поскольку ваше узкое местобудет на стороне потребления, а не на стороне производителя, так как у вас есть один потребитель и потенциально много одновременно работающих производителей.
Лично я предпочел бы, чтобы пул выполнял всю работу и просто писал приложение, как если бы оно былосоздавая соединение и сеанс каждый раз, когда он отправляет сообщение (что, очевидно, было бы огромным анти-паттерном без пула).