Why does FireFox portable come with two Firefoxes and what is the difference?

There's only one Firefox there. It's the program in FirefoxPortable\App\Firefox\. The program in FirefoxPortable\ isn't Firefox. It's the PortableApps Launcher. Run that, and it sets up the necessary "portable" environment and then launches Firefox. Run Firefox directly, and all of the setup done by the lanucher that makes it "portable" is not done.

It should be fairly obvious from this that if one wants the benefits of Firefox run under the launcher, one invokes the launcher. ☺

Further reading

  • "Directory and file layout". PortableApps.com Format. version 3.0. 2013-12-06.

Since the further reading might be taken down i will quote at least a few parts here

Directory and File Layout

The basic directory layout of each portable app consists of a main directory, AppNamePortable which contains three directories: App, Data and Other.

AppNamePortable
+ App
  + AppInfo
    + FileTypeIcons
  + AppName
  + DefaultData
+ Data
+ Other
  + Help
    + Images
  + Source

AppNamePortable: contains the main application launcher, typically named AppNamePortable.exe and the main help file help.html. No other files are present in this directory by default.

App: contains all the binary and other files that make up the application itself, usually within a directory called AppName.

  • AppInfo contains the configuration details for the PortableApps.com Platform as well as the icons used within the menu. It may also contain the launcher.ini configuration file used for the PortableApps.com launcher.

  • DefaultData is usually used as a container for the default files to be placed within the Data directory. Generally, the launcher, when run, will check if there is a set of files within Data and, if not, will copy them from DefaultData. The next release of the PortableApps.com Installer will do the same.

Quote from Readme.txt

If you are unable to run the exe and instead unpack the portable-download using 7-zip you may experience that the process did not run faultfree.

Inside $_OUTDIR i found a few files that seem to belong somewhere else. The readme in this directory contained this info

INSTALLATION / DIRECTORY STRUCTURE
==================================
By default, the program expects the following directory structure:

-\ <--- Directory with FirefoxPortable.exe
    +\App\
        +\firefox\
    +\Data\
        +\profile\
        +\settings\
        +\plugins\ (optional)
        
The above files may also be placed in a FirefoxPortable directory with the 
FirefoxPortable.exe launcher a directory above that.