Let a graph G contain one vertex and one edge for each generator of a free group F, so that π1(G) = F. Given any subgroup H of F, there is a covering space G~ with π1(G~) = H. Since every covering space is a graph, and the fundamental group of a graph is free, H is free.
Let H have finite index n in F, and build the covering graph G~ with π1(G~) = H. Assume G and G~ are connected. Let Y be the fiber of the base point b. The points of Y correspond to the right cosets of H in F. Thus |Y| = n.
Throughout G~, each fiber is the same size as Y. Thus each vertex in G has n preimages. Each edge leaving a vertex has n counterparts in G~, each leaving its preimage of the vertex. Therefore χ(G~) = n×χ(G). Relate this to rank, and the rank of H is 1 - n×(1-rank(F)).
If the rank of F is 1, whence F = Z, the rank of every subgroup is 1.
If the index is 1, the ranks are equal.
If the rank of F is 2, the rank of H is n+1. The rank of H is typically higher than the rank of F. This isn't like free modules; you can fit a free group inside a free group of lesser rank. In fact we already placed a free group of infinite rank inside the free group on A and B.
I don't have a lot of examples handy, but let me at least describe index 2 and rank 3. Reducing a word might cancel A and A inverse, but this preserves the parity of the A's. A natural homomorphism takes F onto Z2 by determining whether the number of A's (plain or inverted) is even or odd. Let H be the subgroup of Even A's. This has index 2 and rank 3. Let the three generators be AA, B, and ABA. We need to prove every word in H is uniquely constructted from these generators. Leading instances of B or B inverse, if any, come from B. Then an even sequence of A or A inverse is handled by AA. More B's could come, then more A's. If a stretch of A's is odd, use AA to cover all but the last, which must be followed by B or B inverse. This is handled by ABA or its inverse, with perhaps another AA or AA inverse just before to balance the books. If another B follows, use AA inverse, and then ABA. Continue until the B's are done, and you will find more A's, because A's are even. Use AA to cover the next stretch of A's, until you come to the end, or more B's. Continue until the word is complete; it all works out. Therefore H has index 2, and rank 3.
If F is free on A B and C, toss in the generators C and ACA. In general, the normal subgroup H, of index 2, based on an even number of A's, can be built for any free group F.
The converse holds when H (nonempty) is normal in F. Let H have infinite index in F, and build G~ over G such that the projection embeds H into F. Select base points b~ in G~ and b in G. Since H is nontrivial, there is some loop l~ at b~ projecting to a loop l at b. Because H is normal, you can lift l, starting at any other point in the fiber of b, and find a loop. So there is a loop over l for every point in the fiber of b.
Assume l is reduced. If a lift is not reduced, we could cancel an edge and its inverse, upstairs and down, and l would not be reduced. Therefore each lifted loop is reduced, and has the same length as l. Call this length j.
Let c be any point in the fiber of b, other than b~. Thus c represents another coset of H. Let T be a spanning tree for G~. Let m be the path from b~ to c, traveling through T. Note that m is reduced. Consider the concatenation of m, followed by the loop at c, followed by m inverse, and assume it represents the same element of π1(G~) as the original loop l~ at b~. The canonical representative of each homotopy class is a reduced word in the free group. If two loops fall into the same homotopy class, they must become equal when reduced. Thus our concatenated path reduces to a path of length j. Of course the loop at c already has length j. And that loop is reduced. So an edge at the end of m, or the start of m inverse, cancels the first or last edge at c respectively. Take the first scenario. The first edge leaving the loop at c undoes the last edge of m. Get rid of these two edges, and fold the first edge of m inverse into the loop at c. Now m goes from b~ to a vertex adjacent to c. A lloop passes through c and around to this new vertex; then you can follow m inverse back to b~. The loop containing c is the same, we have just shifted the base point. If there is more to m, then the path does not yet have length j, and is not yet reduced. Repeat the process until m is no more. Therefore the loop at c is a circular shift of the loop at b~.
Does this really happen? Sure. Let a hexagon cover the triangle. The loop above wraps twice around the loop below. Place b~ at the top of the hexagon, and c at the bottom. They represent different cosets of H, yet they are the same loop, rotated by 3 edges.
Let c and d be different points in the fiber of b. The path from b~ to c, followed by the path from c to d, creates a path within T from b~ to d. (This path may not be reduced.) Assume the homotopy classes of the loops at c and d, when tied to b~, are the same. Moving the base point from b~ to c performs an isomorphism on π1. Thus the loop at c, and the path from c, around the loop at d, and back to c, are homotopic. Apply the previous result, and the loop at d is a rotation of the loop at c.
Assume k points in the loop l~ map to b. In the hexagon triangle example, k = 2. An automorphism, compatible with projection, maps l~ onto any other loop. Thus every loop has k points in the fiber of b. Since the fiber is infinite, there are infinitely many loops. Suppose π1(G~) has finite rank. This means there are finitely many generators. Each generator comes from the cycle basis. Raise 2 to this power, and you still get a finite number. This implies finitely many loops, which is a contradiction. Therefore the rank of H is infinite.
In general, the rank is at least the cardinality of the index.
If either H or K is normal, and F = H join K, i3 is precisely i1i2, and the rank inequality becomes an equation.