I can't solve your problem, but I can at least explain why this occurs:
Your function has square root branch singularities in addition to the jumps, which invokes
the adaptive splitting. The error control in the adaptive splitting is not 'L_\infty' in the sense
that it allows the newly created funs to have a larger error if they live on smaller intervals.
The norm this then defines I don't know (if it even is a norm) but it at least (usually) allows
the construction to terminate.
In particular, if you look at the 6th fun in the constructed chebfun (the one with length 8,
closest to the singularity / jump) ones finds
chebcoeffs(f.funs{6})
9.999099322018328e-01
5.994850992857182e-05
1.193195459526655e-05
5.072226977573609e-06
2.786094459815282e-06
1.746665523485859e-06
1.187486566134302e-06
8.516762607987371e-07
Suggesting this fun only has a local accuracy of around 1e-7 (since it lives on a domain
of length 1e-8, it's 'global' accuracy around 1e-15). Hence, when you evaluate this fun at
it's right and/or left limit, you can expect an error of around 1e-7.
Storing the jumps located in fundjump would be a big design change, and one I don't
think would find much traction. In particular, those jumps are properties of the original
function, not the constructed chebfun. No other properties of the construction function
are stored (for example, one could keep hold of the function handle used to construct
in case that was useful later, but we don't).
Hope this helps
Nick