Think about it from the point of view of an edit box in a repeat control. XML requires all elements to have a unique ID. So if XPages (or any technology for that matter) used the ID you specify, you can no longer have repeats. And that includes view panels, which are repeats, as well. You would be forced to create not just one template row for your repeat, but duplicate and change the IDs for all elements in as many rows as you want. This is the pain we've had with Notes Client development for so long, that if we want to allow users to update multiple documents we need to create e.g. 10 duplicate copies of fields, each with its own unique field name. If we need to change a formula for one field, we need to change it ten times.
To ensure uniqueness required by XML, the IDs are generated sequentially, so if you have a custom control with an edit box with id "test", if it's the first custom control on the XPage it may be view:_id1:_id2:test. If it's a custom control further down your XPage it may be view:_id1:_id57:test. If it's within several custom controls, it may be as complex as view:_id1:_id3:_id40:_id76:test.
So that's why the ID is automatically generated and why it's not a bug.
If you really want to use IDs to manage your classes, you can always create HTML fields or elements on your XPage instead. But if you're using them to store data, you'll need to handle the back-end saving of the data yourself. So while you're gaining CSS by IDs, you're losing core XPages functionality.