You can argue that advanced language constructs will make it easier to write correct code to implement data structures, but it's not a magic bullet.
The Go authors argue that a simple programming language with loops, pointers and arrays is all you need to implement any data structure you need.
I find this a good example of a data structure for which I see little or no benefit in being modeled as an ADTs:
http://research.swtch.com/sparse
Even simple things like doubly linked lists are complicated with ADTs. On the other hand I don't know about good examples of ADTs used outside of the context of functional programming, do you have some pointers?