My question is, do views that are created programmatically require an id, even if we do not require the id for other purposes?
Short answer: No, they don't require an ID. The long answer is of course that it depends on what you're doing and what state you need to save.
This article actually covers the topic pretty thoroughly, so I'd recommend reading it if you haven't: http://www.charlesharley.com/2012/programming/views-saving-instance-state-in-android/