You can do that, but it won't change the behavior. If you have duplicate items, they can't be dictionary keys, because dictionary keys must be unique. So xmltodict will make them list entries. Let's try to see what's happening here
Output:
OrderedDict([('kml', OrderedDict([('@xmlns', 'http://earth.google.com/kml/2.0'), ('Document', OrderedDict([('name', 'Some place'), ('Placemark', [OrderedDict([('name', 'Some track'), ('LineString', OrderedDict([('coordinates', '3.880455,43.605057\n3.880504,43.605063\n3.922701,43.596438\n3.923081,43.595929\n3.923408,43.595535')]))]), OrderedDict([('name', 'Some location'), ('Point', OrderedDict([('coordinates', '2.3285601,48.8395985')]))])])]))]))])
Ugly, so lets hack a pprettyprint...
Output:
OrderedDict([('kml',
OrderedDict([('@xmlns', 'http://earth.google.com/kml/2.0'),
('Document',
OrderedDict([('name', 'Some place'),
('Placemark',
[OrderedDict([('name', 'Some track'),
('LineString',
OrderedDict([('coordinates',
'3.880455,43.605057\n'
'3.880504,43.605063\n'
'3.922701,43.596438\n'
'3.923081,43.595929\n'
'3.923408,43.595535')]))]),
OrderedDict([('name',
'Some location'),
('Point',
OrderedDict([('coordinates',
'2.3285601,48.8395985')]))])])]))]))])
What's happening here is that 'kml' and 'Document' are keys whose values are other dictionaries. But 'Placemark' (because it is duplicated) is not. Instead it has a value that is a list, and each of the elements are dictionaries. Those inside-the-list dictionaries are for each of the repetitions.
Because the contents of PlaceMark is a list, you can't index into with with "Style" here. The data structure that xmltodict gives you may change based on later data. Only one Placemark, you get a dict. 2 Placemarks, you get a list of dicts.
So the contents within this one are doc['kml']['Document']['Placemark'][0]. You can add your "Style" key there.