What I am expecting is two objects each containing a new SeekBar, not tied to one another in any way.
They are tied to each other because the have the same id (which is R.id.seekBar). When Android saves and restores the view hierarchy each view to save/restore needs a unique id:
The default implementation takes care of most of the UI per-instance state for you by calling onSaveInstanceState() on each view in the hierarchy that has an id, and by saving the id of the currently focused view (all of which is restored by the default implementation of onRestoreInstanceState(Bundle))
So what you need to do is call seekBar.setId(id) with id being a unique id within this view hierarchy. You can e.g. use this answer to generate a unique id: https://stackoverflow.com/a/21000598/534471
Furthermore, I would not expect the SeekBars to retain their progress on an orientation change, instead they should be destroyed and recreated with the activity.
You can simply override onSaveInstanceState() to prevent the view hierarchy from being saved and restored but I doubt that this makes sense from a user perspective. If I rotate the screen I don't want to lose the position of "my" SeekBars.