Does anyone know how Slic3r determines its infill adjacent strand spacing, instead of using fill density?
This answer should have been a comment, except I have included the relevant code.

To answer question 2, at a guess, bridge is simply a boolean (bool) that specifies whether there is a bridge or not.

From Flow.hpp line 32

/// Represents material flow; provides methods to predict material spacing. 
class Flow
{
    public:
    float width, height, nozzle_diameter;
    bool bridge;

    Flow(float _w, float _h, float _nd, bool _bridge = false)
        : width(_w), height(_h), nozzle_diameter(_nd), bridge(_bridge) {};


Additionally lines 68-73, may also be of interest:

    private:
    static float _bridge_width(float nozzle_diameter, float bridge_flow_ratio);
    /// Calculate a relatively sane extrusion width, based on height and nozzle diameter.
    /// Algorithm used does not play nice with layer heights &lt; 0.1mm. 
    static float _auto_width(FlowRole role, float nozzle_diameter, float height);
    static float _width_from_spacing(float spacing, float nozzle_diameter, float height, bool bridge);


However, your best bet, to get an accurate answer to both of your questions, is to contact Alessandro Ranellucci - alexrj, and ask him - as he is is the designer of the Slic3r code. When you get a reply, maybe you would like to post the answer here... it may be useful for someone else.