УРА, НАШЕЛ!!! Спасибо Дмитрию, натолкнул на мысль. Хотя он был и не совсем прав )))
Возможно IBExpert и в самом деле может использовать embedded server, точно не знаю, но зато я на 100% уверен что в моем случае он подключается к настоящему FB серверу. (доказательства в Шагах 9 и 8 моего предыдущего поста).
Оказалось, что проблема на самом деле не в IBExpert, не в embedded server и не в ADO.NET. Проблема в том, как fbserver обрабатывает символические ссылки.
Поскольку я считаю это как минимум некорректностью реализации сервера, а как максимум - багом, то детально опишу причины проблемы.
Сформулировать можно в общем случае так: "При одновременном подключении 2 и более независимых клиентов к одному и тому же файлу БД через FB server, при условии, что один из клиентов сообщает серверу путь к файлу, отличающийся от пути, сообщенного серверу первым подсоединившимся клиентом, сервер отказывает клиенту в подключении мотивируя это тем, что файл уже используется другим приложением".
В каком случае пути к одному и тому же файлу могут отличаться? в случае, если используется символическая ссылка на каталог. Пример:
На диске С: в каталоге db лежит файл application.fdb.
На этом же диске создана символическая ссылка (symlink или junction) на каталог db с именем sdb.
В этом случае, к файлу application.fdb можно "добраться" двумя разными путями, которые абсолютно эквивалентны с точки зрения операционной системы:
1) c:\db\application.fdb
2) c:\sdb\application.fdb
Однако же, эти два пути представляются серверу Firebird абсолютно различными! Поэтому, если вы попытаетесь подключиться ЛЮБЫМ клиентом (даже упомянутым Дмитрием isql.exe) к одной и той же БД, используя при первом подключении путь (1), а при втором - путь (2), сервер отвергнет вторую попытку подключения!!!
Вероятнее всего, когда сервер проверяет путь к БД, к которой клиент хочет подключиться, он сравнивает его с путями уже имеющихся подключений. Не найдя совпадения, сервер считает что он этой БД не подключен, а следовательно требует монопольного доступа к файлу. Что не есть корректно (на мой взгляд).
Предлагаемое решение: перед проверкой пути к БД, сервер должен разрешить все символические ссылки и сравнивать абсолютные дисковые пути, лишенные символических ссылок.
А можно просто нам, разработчикам, зарубить на носу - всегда серверу передавать в строке коннекта только абсолютный путь, без всяких ссылок.
В любом случае, всем спасибо за участие, для меня проблема решена