Из моего ограниченного понимания:
1 - Он может быть довольно большим, ограниченным количеством потоков, которые может иметь система (я думаю, что он ограничен максимальным количеством потоков или ограничением некоторых собственных ресурсов ОС). Я видел 100+.
2 - Да, потоки должны получать ресурс в режиме FIFO.
3- Нет, потоки с более высоким приоритетом могли бы встать в очередь раньше, но после того, как они в очереди, их место исправлено.
4 - Источник данных может быть другим, в основном это зависит от реализации пула. Я думаю, что Apache dbcp (как видно из Tomcat) ведет себя так, за исключением того, что существуют тайм-ауты, которые могут быть запущены, если пул не может назначить соединение в установленное время.
Надеюсь, это поможет.