The database is always in a separate file regardless of whether or not the Firebird DBA is running embedded or client/server.
In both cases, the Firebird Client Library provides the Firebird API to your application. When running in embedded mode, the client library directly access the Firebird Engine DLL. In the client/server case, the same Firebird Engine DLL is used except that it is accessed via (usually) a TCP/IP connection and the Firebird Server (either locally or remotely).
A key issue tends to be file permissions. When used in embedded mode, your application must have permission to access the database file and, if it creates this file, the database file will be owned by the application's user id. If accessing the database file via the Firebird Server then the server must have permission to access the database file. Similarly, if the database file is created by the server then its user id owns the file.
Generally, it is not a good idea to access the same database embedded and via a Firebird Server at the same time. You can get into a mess with file ownership, permissions and lock files if you do. Embedded mode is good for a personal database, while access via a Firebird Server is best for multi-user access.
When porting a database between systems or even when changing access modes, the safest approach is usually to use gbak to backup the database and then restore it to the new system.