I'm using the default ISQLiteConnectionPool implementation, but reproducing this issue with a barebones test code I've pinpointed the root cause: setting SQLiteConnectionStringBuilder.FailIfMissing to true causes SQLiteConnection.PoolCount not to return its expected value.

Here's my code, which using System.Data.SQLite.Core shows a final SQLiteConnection.PoolCount of 0 instead of 63 when using System.Data.SQLite.Core 1.0.108:

using System;
using System.Data.SQLite;
using System.Linq;

namespace Test109
{
    class Program
    {
        private const int MaxPoolSize = 64;
        private const int Preserve = 1;
        private static SQLiteConnectionStringBuilder _sqLiteConnectionStringBuilder;

        static void Main(string[] args)
        {
            Console.WriteLine($"Using SQLite {SQLiteConnection.SQLiteVersion}");

            _sqLiteConnectionStringBuilder = new SQLiteConnectionStringBuilder($"Max Pool Size={MaxPoolSize}")
            {
                DataSource = ":memory:",
                FailIfMissing = true, This setting causes SQLiteConnection.PoolCount not to return its expected value.
                Pooling = true,
                ToFullPath = false,
            };

            var connections = Enumerable.Range(1, MaxPoolSize).Select(_ => OpenSqLiteConnection()).ToArray();
            foreach (var connection in connections.Skip(Preserve))
            {
                CloseSqLiteConnection(connection);
            }

            CheckSqLiteConnection(connections[0]);
        }

        private static SQLiteConnection OpenSqLiteConnection()
        {
            var connection = new SQLiteConnection(_sqLiteConnectionStringBuilder.ToString());
            connection.Open();

            CheckSqLiteConnection(connection);
            return connection;
        }

        private static void CloseSqLiteConnection(SQLiteConnection connection)
        {
            connection.Close();
            CheckSqLiteConnection(connection);
        }

        private static void CheckSqLiteConnection(SQLiteConnection connection)
        {
            Console.WriteLine($"Connection {connection.State}: {connection.PoolCount} in pool");
        }
    }
}