1) If you want more than 100 results, up the limit to a higher number; 100 is the default. Use "limit" : 500 or whatever.
2) You probably want to mark some of your clauses as optional; as it stands, if the system doesn't know the capital of a country, it will be entirely excluded.
3) The Weimar Republic *is* a country -- or was. That's perfectly valid in Freebase. The country type is used for past and present countries and things that act like countries (eg. have an ISO code). Admittedly this might not quite be what you expect, at first glance.
One way to query for what you probably want is to query for things that are countries, which have an ISO code, and which are not also co-typed as administrative division. That should get you something approximating the list you expect -- if I'm guessing right about what you do expect
Also, re: updating data in the system, you don't need to use the write API. You can simply do it via http://freebase.com/ by clicking on "Edit" wherever necessary.