[This answer is valid for CC V4.1 or later. Solution 3 requires calibre 2.32 or later.]
There are three solutions to ensuring that file names for a book are the same on multiple devices regardless of the delivery path. You might want to use one of these solutions if you are using a reading app that is capable of syncing reading positions across devices, such as Moon+.
Check CC's setting "Use book ID as filename" (Settings / File names). This tells CC to use the book's unique ID as the file name no matter how the book gets to the device. Although this works well for syncing (that is why the option was added), it has the problem that the book file names become meaningless; a series of numbers.
If you use the content server but do not use CC Cloud, check "Use calibre's file name" in CC's settings. This tells CC to ask the content server what file name the wireless device would use. This works well if you are running the content server in calibre's GUI. If you are not then the content server will not be able to get the file name from the wireless device, in which case you must use the first or third option.
If you use CC Cloud and either (or both) of the other two connection types then you must check the box "Use CC template everywhere". This tells CC to ignore the file name provided by the wireless connection (starting with calibre version 2.32) and the content server, instead computing the file name using a simplified form of a calibre template. Once you check the box you should go to book details for some book and select "Edit file name template" on the book details menu. A dialog will open showing you the current template and what file name it generates for the book you chose. See What can I use in a CC file name template?
for more information about CC file name templates.
Note: Starting with calibre 0.9.15, sending a book to the device that calibre knows is already on the device will not create a new file. Instead it will overwrite the existing file, preventing having multiple copies of the book on the device. If you don't want this behavior, either delete the existing copy before sending the new one or change an option in calibre to disable the check if the file already exists. To change the option, connect as a wireless device, then in calibre right-click on the device button, choose "Configure this device", and uncheck the option "Replace books with same calibre identifier". Unfortunately, this change does not help if you want to have the same file name across multiple devices, no matter how the file arrived on the device.