OK, two things here that we need to keep separated, at least for now.
1st: the block enhancements. This is a very powerful feature, because it will add the ability for users to customise the block positioning from a list of available blocks. This means that at the user level, people can show, hide, and position blocks on a site. In my opinion, it goes too far to do this at the module level, like the current blocks admin. If a user has admin rights on visible blocks, the edit or admin link should be visible.
At the admin level, everything should be configurable: which blocks can be moved by which groups of users, and what the range of the movement is. Also, what blocks can be made visible by what users, and where they are allowed to place them. And if it is even possible for users to manage this themself.
Personally, I would *love* this feature, but to do this right, would take a LOT of work. Thus, I propose a phased implementation. First, make this work in the administration area. This is easy, because every user that goes there has full rights (so no need to check that). Also, the blocks are set for every group (like the curent blocks admin), but then visually. Basically, the blocks admin page, but then shown like
my.netscape.com. Since this doesn't require database changes, this can be implemented in 2.0.x, or if that is too soon, 2.2 is not an issue.
The next phase, is to bring this control to the user end. This requires a LOT more work, as every user will have it's own blocks setting. This means queries, speed, caching, access issues and the best OO way of doing this need to be resolved. This will require some discussion and testing first
2nd item: the user profile. The same basic issues as above apply here. This is a very powerfull feature that has been on many people's wishlist for a long time. Including mine, of course. To do this right it would mean that the user profile is infinately extendible with module generated, user specific information and feedback. Very much like the examples you have shown (talunceford recently released a personal links module that is a great first step), every user can create as complete a 'personal subsite' based on his/her preferences and activities. History, bookmarks, profile, memberships, messages, albums, rights and personal page settings are just a few of the possibilities on the user side.
On the admin side, configurable setting access (what does the user control him/herself, and what does the admin control... warnings can't be hidden, for example) are important. To make this work, the user profile needs an interface modules can access to extend the profile with it's own information. How modules do this, and what the interface controls, are things that still need to be figured out, let alone implemented.
Here I propose a phased implementation as well. The first phase would be to make the current user profile partly dynamic (only that part that isn't required by the system and some oft-used modules). Those fields can be changed, new fields added, etc. This is a slim version of what we'd really want to work on, but it will be a big step for the usability of the system already.
The extended version needs a lot of contemplation on how to implement this, without turning XOOPS into a slow, querysome monster.
For both features I think it would be good to make comparative studies with other systems that have implemented them, and/or sites that show them. We don't have to reinvent the wheel (again), but doing it the quick-and-dirty way isn't going to help anyone either.
These are my considered 2 cents.
Herko