Let me answer Question 2.
Strong version: no. Consider [0,1] with distance d(x,y)=|x−y|1/3. There is no even a triple of points with rational distances - otherwise there would be a nonzero rational solution of x3+y3=z3.
Weak version: yes. Let (X,d) be the space in question. Construct sets S1subsetS2subsetdots such that each Sk is a maximal (2−k)-separated net in X. Let S be the union of these nets; then S is countable and dense in X.
Now construct the following metric graph on S. For every k, connect every pair of points x,yinSk by an edge whose length is (1−10−k)d(x,y) rounded down to a multiple of 10−2k. The new distance d′ on S is the induced length distance in this graph. It is easy to see that the edges outside Sk do not affect the distances in Sk, hence all these distances are rational (multiples of 10−2k). The new metric d′ on S satisfies frac12dled′led, hence the completion of (S,d′) is the same set X with an equivalent metric.
UPDATE.
Here is a more detailed description without the term "metric graph".
For each k, define a function fk:mathbbR+tomathbbR+ by
fk(t)=10−2kleftlfloor102k(1−10−k)trightrfloor.
The actual form of
fk does not matter, we only need the following properties:
fk takes only rational values with bounded denominators (by 10−k).
Let ak and bk denote the infimum and the supremum of fk(t)/t over the set tge2−k. Then frac12leaklebkleak+1le1 for all k. (Indeed, we have 1−2cdot10kleaklebkle1−10k.)
For every x,yinSk, define ell(x,y)=fk(d(x,y)) where k=k(x,y) is the minimum number such that x,yinSk. Note that
akd(x,y)leell(x,y)lebkd(x,y)
for all such pairs
x,y, since
Sk is a
(2−k)-separated set. For a finite sequence
x0,x1,dots,xninS define
ell(x0,x1,dots,xn)=sumni=1ell(xi−1,xi).
I will refer to this expression as the
ell-
length of the sequence
x0,dots,xn. Define
d′(x,y)=infell(x0,x1,dots,xn)
where the infimum is taken over all finite sequences
x0,x1,dots,xn in
S such that
x0=x and
xn=y. Clearly
d′ is a metric and
frac12dled′led. It remains to show that
d′ takes only rational values.
Lemma: If x,yinSk, then d′(x,y) equals the infimum of ell-lengths of sequences contained in Sk.
Proof: Consider any sequence x0,dots,xn in S such that x0=x and y0=y. Remove all points that do not belong to Sk from this sequence. I claim that the ell-length became shorter. Indeed, it suffices to prove that
ell(xr,xs)leell(xr,xr+1,dots,xs−1,xs)
if
xr and
xs are in
Sk and the intermediate points are not. By the second property of the functions
fk, the left-hand side is bounded above by
bkd(xr,xs) and every term
ell(xi,xi+1) in the right-hand side is bounded below by
bkd(xi,xi+1). So it suffices to prove that
bkd(xr,xs)lebksums−1i=rd(xi,xi+1),
and this is a triangle inequality multiplied by
bk. Q.E.D.
All ell-lengths of sequences in Sk are multiples of some fixed rational number (namely 10−2k). Hence d′(x,y) is a multiple of the same number if x,yinSk. Thus all values of d′ are rational.