Thank you for your explanation. I think to have understood. Moreover, if I got it correctly, both terrain and imagery tiles at each level become 4 times the tiles of the previous level, don't they ? 
I would need some hint on how to design the unit test for my fix. Should I create a virtual imagery source (as your `SmallArea`) and define the `extent` attribute passed to the `TileMapServiceImageryProvider` in a way that I know what are the `textureCoordinateExtent` of each `TileImagery` that is included in a terrain tile ? For instance I could set the `extent` attribute to a value that for `tiles[0]` the first imagery has a bounding box [0.2, 0.5, 0.5, 0.8] the second imagery has a bbox [0.2,  0.2, 0.5, 0.5] and so on; no intersection with `tiles[1]` and then other precomputed bbox for children terrain tiles of `tiles[0]`.  Would it be an effective way to write the unit test ? How much error tollerance should I use in comparing computed values with expected ones ? That is, instead of a bbox [0.2, 0.5, 0.5, 08] I could get [0.2001, 0.2, 0.4999, 0.5] .