Al hacer el primer corte, la pieza más grande tiene la longitud $p$ que se distribuye uniformemente en $[\frac12, 1]$ . (Y así la pieza más pequeña tiene longitud $1-p$ distribuidos uniformemente en $[0, \frac12]$ pero, por supuesto, no es independiente de la longitud $p$ de la pieza mayor).
Del mismo modo, al cortar este trozo de longitud $p$ en un punto elegido uniformemente, el más pequeño pieza de los dos tiene longitud $q$ distribuidos uniformemente en $[0, \frac{p}{2}]$ .
Por lo tanto, la más pequeña de las tres piezas tiene una longitud $\min(q, 1-p)$ . Podemos calcular su valor esperado como $$ \int_{1/2}^{1} \int_{0}^{p/2} \min(q, 1-p) \;(\frac{1}{p/2}dq) \;(\frac{1}{1/2}dp) = \int_{1/2}^{1} \frac{4}{p} \int_{0}^{p/2} \min(q, 1-p) \;dq \;dp$$
Si $p/2 \le 1-p$ (lo que ocurre cuando $p \le 2/3$ ), entonces como $q \le p/2 \le 1-p$ siempre es el caso que $\min(q, 1-p) = q$ por lo que la integral interna se convierte en $$ \int_{0}^{p/2} \min(q, 1-p) \;dq = \int_{0}^{p/2} q \;dq = \frac{p^2}{8}.$$
De lo contrario, para $p/2 > 1-p$ la integral interna se puede dividir como $$\begin{align} \int_{0}^{p/2} \min(q, 1-p) \;dq &= \int_{0}^{1-p} q \;dq + \int_{1-p}^{p/2} (1-p) \;dq \\ &= (1-p)^2/2 \;\;+\;\; p(1-p)/2 - (1-p)^2 \\ &= p(1-p)/2 - (1-p)^2/2 \end{align}$$
Así que la integral exterior es $$\begin{align} &\int_{1/2}^{1} \frac{4}{p} \int_{0}^{p/2} \min(q, 1-p) \;dq \;dp \\ &=\int_{1/2}^{2/3} \frac{4}{p}\frac{p^2}{8} \;dp + \int_{2/3}^{1} \frac{4}{p}(\frac{p(1-p)}{2} - \frac{(1-p)^2}{2})\;dp \\ &=\int_{1/2}^{2/3} p/2 \;dp + \int_{2/3}^{1} \left(2(1-p) - \frac{2(1-p)^2}{p}\right) \; dp \\ &= \frac{7}{144} + \frac{1}{9} - (\log(9/4) - 7/9)\\ &= \frac{15}{16} - \log\left(\frac94\right) \approx 0.12657 \end{align}$$
Parece una respuesta muy extraña, pero se confirma a grandes rasgos con la siguiente simulación:
#!/usr/bin/env python
import random
num_samples = 0
sum_samples = 0
for num_samples in xrange(1, 100000000):
r1 = random.uniform(0, 1)
p = max(r1, 1 - r1)
r2 = random.uniform(0, p)
q = min(r2, p - r2)
cur_sample = min(q, p - q, 1 - p)
sum_samples += cur_sample
average = sum_samples / num_samples
if num_samples % 100000 == 0:
print 'Average is %.5f after %d samples' % (average,num_samples)