Fix for requirement 2.
There already is an attribute which submits modified widths on resize event, which is called "clientOnly", so I have just changed the renderer to make a use of it for columns component. So when <ice:dataTable clientOnly="true"> the columns widths will be persisted.
Trunk:
Modified: D:\work\development\head\svn\ossrepo\icefaces\trunk\icefaces\component\src\com\icesoft\faces\component\ext\renderkit\TableRenderer.java
Sending content: D:\work\development\head\svn\ossrepo\icefaces\trunk\icefaces\component\src\com\icesoft\faces\component\ext\renderkit\TableRenderer.java
Completed: At revision: 20892
EE:
Modified: D:\work\development\head\svn\ossrepo\icefaces-ee\branches\icefaces-ee-1.8.2\icefaces\component\src\com\icesoft\faces\component\ext\renderkit\TableRenderer.java
Sending content: D:\work\development\head\svn\ossrepo\icefaces-ee\branches\icefaces-ee-1.8.2\icefaces\component\src\com\icesoft\faces\component\ext\renderkit\TableRenderer.java
Completed: At revision: 20893
Optional requirement 2) It would be nice if the size of the actual column width could be read somehow and as well written by the program logic in order to store the size configured by the user and present it in the same way the next time he enters the corresponding view.