Ok I have found Bernacchi and read pages 1-11. In these pages he is discussing only V and V*. There is no inner product on V, and he calls the natural evaluation pairing VxV*-->R, taking v,f to f(v), the "heterogeneous inner product".
There is at first no way to identify V with V*, so vectors cannot yet be considered as covectors. Then he chooses a basis e1,...,en for V, which gives a way to identify V with coordinate space R^n, by associating to each vector in V, its coordinates in R^n.
But then there is always a unique associated "dual" basis for V*, namely the basis of functions f1,...,fn in V* such that fi(ej) = 1 iff I=j, and = 0 otherwise. Then using this basis for V*, the space V* can also be identified with R^n, using the coordinates in terms of this basis to represent functions in V*.
Since both V and V* are identified with R^n by the choice of a basis of V, this choice of basis gives a way to identify V with V*, i.e. to view vectors as covectors. Namely if A is a vector with coordinates a^1,...,a^n, and B is another vector with coordinates b^1,...,b^n, we view A as the covector whose value at B is a^1b^1+...+a^nb^n.
What is going on here is that R^n has a standard inner product, and once the basis is used to identify V with R^n, we can transfer that inner product to V. Then with this inner product on V, call it <A,B>, we are just getting the familiar identification of V with V*, via A corresponds to <A, >. This is the unique inner product on V for which the chosen basis e1,...,en is orthonormal.
Later however, when he starts over with V, with no basis, and introduces first a "homogeneous" inner product g( , ) for V, and then chooses a basis u1,...,un for V that is not orthonormal for g( , ), we will have two different ways to identify V with V*, and hence two different ways to identify V with R^n, one by means of the basis, as above, and another by means of the inner product g.
I.e. the basis u1,...,un for V defines a dual basis f1,...,fn for V* such that fi(uj) = kronecker delta ij. Using the inner product g, we can transfer this basis to a basis for V, by choosing u^j to be the unique vector in V such that for all B in V, we have g(u^j,B) = fj(B). If we write a "dot" for g, we have u^j.B = fj(B).
Now if A is any vector in V, we get an element A* of V* where A* is the function A*(B) = A.B. In terms of the dual basis f1,...,fn for V*, this A* has an expansion as A* = c1f1+...+cnfn, for some c1,...,cn.
Now that we have two bases for V, namely {uj} and {u^j}, each vector A has two expansions, A = a^1u1+...+a^nun = a1u^1+...+anu^n.
I claim aj = cj for all j. I.e. the coefficients cj of A* in terms of the natural "dual basis" {fj}, are equal to the coefficients aj of A in terms of the basis {u^j} for V. (This is why Fleisch calls {u^j} the dual basis for V.)
E.g. note that A.u1 = (a1u^1+...+anu^n).u1 = a1, by definition of the u^j. But also A.u1 = A*(u1) = (c1f1+...+cnfn)(u1) = c1, by definition off the fj. Thus a1 = A.u1 = c1.
Similarly, aj = cj, for all j.
So, fuzzy as this sounds, Fleisch seems to be saying he wants to identify V and its inner product with R^n and the standard inner product. But if he does this, then a vector A has to be identified with the coordinate vector (a^1,...,a^n) when thought of as a vector, but with the coordinate vector (a1,...,an) when thought of as a covector........???? yoicks. (As the unpicky rat in Disney's "Ratatouille" said, when the gourmet rat asked him what he was eating, I don't really know.)