The ability to define properties in the editor would be nice. I'm thinking both properties for tile types and specific tiles. This would make doing things a lot easier in. Obviously, it would require some coordination between the coder and the map maker, but it wouldn't be any harder than it is now.
For tile types you could just call a method that returns a value, probably a string to allow for flexibility. The user would just have to call something like Tiles.GetProperty("solid", myTile); and it would return "true" or "false". By having the return type be a string, you could also allow it to return numbers for stuff like tiles that damage the player.
Specific tile properties could be used for things like start and end points or teleporters. You obviously don't want every air tile to be reported as being a start point, so you could just check something like myTile.GetProperty("start") and have it return a boolean or string for the same flexibility as the tile type return.
Obviously, you could create a dictionary for each tile that has all the properties, but I think it would be better to have a single dictionary somewhere that stores both the specific properties and the coordinates of the that tile. Then myTile.GetProperty("start") just have to find out if the value of "start" is true or not.
Edit: It may be worth doing it based on an ID system instead of coordinates, that way any object with a property can use the same property dictionary.
I tried submitting this through the built-in feature request button a couple weeks ago, but it failed and I never got around to trying again.