> I'm still really surprised every time I see a windows-based ATM.
So you're surprised every time you see an ATM? They're all Windows-based (unless there are still some OS/2 ones around, which would not surprise me much).
> Why would a full, general-purpose OS be included in those machines that need to do just under 10 operations?
Among other things: Because the maker of that OS defined an API (XFS, mentioned in the article) to access the custom peripheral hardware used by ATMs.
> but just to limit the exposed code, it could be based on something much more restricted.
What exposed code? These machines aren't connected to the internet, talk only to their own servers, and have a very limited end user interface.