Personally, I in general think that adding special handling/rules to individual cities is not a great idea. Special handling makes the system convoluted and hard to understand, specifically for newer users (and others) that are not aware of the underlying reasoning for the various rules and ways the system works. Moreover, such rules would in many cases be the product of individual opinions about what the best ruleset would be. Given the many ways people use CityStrides and the extreme variations in users’ strictness—from frequent manual completion and only making sure to catch nodes to hard mode with making sure everything is coloured purple and re-running streets when the GPS has drifted—deciding on the “correct” rules for a city is difficult.
From an implementation perspective, I would think that handling such individual rules would easily become annoying and result in a convoluted code base. Additionally, it could end up causing a lot of bugs and taking a lot of James’ limited time.
Of course there are some special cases that need to be handled, such as when there are varying systems for street names, regions etc. in different countries.
When it comes to the specifics of how streets are counted in nested cities, I am inclined to say that counting on the lower level of nested cities is not a good idea and will result in a lot of double counting. The main issue in my eyes is that with this approach to counting, a single street will be counted multiple times, even though it is the same physical street. Any street that crosses or runs along the border of two neighbouring cities will have nodes in both of the cities. Thus, running such streets would result in a double count with your suggested counting scheme. Obviously, this is also an issue with “normal” cities at the moment. However, as the parts of a nested city are usually smaller than “normal” cities, i.e, there is a large number of these, and neighbouring “normal” cities usually have much less shared or bordering roads, it is much less of an issue. As I am on mobile at the moment, I’m unable to verify exactly how much double counting this would cause in London, but from spot checks and the number of nested cities in London, it seems like there is quite a large number of streets that would be double counted.
As a personal anecdote, I understand your frustration. However, this is not an issue that is solely restricted to London. It affects all nested cities, although to varying degrees depending on the size of the city and the naming scheme used by the city office. Obviously, with London being this large it is more likely to happen, at least for common, simple street names. This does, however, not mean that it is hard to get a lot of street completions in London. Actually, it seems like Greater London is a city in which street completion is very easy. On average, each street in Greater London is only approximately 423 meters long, even when multiple streets with the same name are counted as one. In my smaller, but still okay-sized cities of approximately 250 000 and 1 000 000 inhabitants, this number is 846 and 724 meters. Sydney, a nested city with approximately the same number of streets as London, has 620 meters per street. So, it is not like this clumping of some streets with the same name is making street completions extraordinary difficult in London.