I'll Take a SWIG of that OGR
SWIG can't be all bad if they have supported Scheme and OCaml from very early versions. Tamas has done a great job of attacking the wrappers for .NET (implemented in C#). I hope to start contributing some patches for the functions I'm interested in.
All abstractions are leaky, and SWIG can't hide the very 1990's C++ nature of OGR. All of the objects are very stateful, and one must be careful to dispose of them properly. It would be nice to hide them in some immutable, functional-programming-friendly objects that obeyed some of the better .NET idioms. Once we had those, I think we'd be in good shape to visit the promised land of unified data access for spatial and non-spatial data. Sure, I could use all the cool OGR drivers or ArcObjects functions and pretend the whole world is just attributes clinging for life to an IGeometry. Or I could use simple ADO.NET and not know an IGeometry from a BLOB. But I think with the right projection libraries, DB OGC support, and a clever IDbDataAdapter, it would be a promised land.