eZ attributes table in database has only trivial storage capabilities: data_text field, data_int field, data_float field, etc.
For more complex cases you can use delimiters (as you self suggested) , code it in xml (like ezxmltext or ezmatrix) or use other tables (like ezkeyword).
For even more complex datatypes, you can create your own table in the database, store all the data there, and relate it with a foreign key to the attribute. Of course you'll have to write your own code for storing and retreiving data.
For example, that's how the ezcomments extension works.
--
Nothing is impossible. Not if you can imagine it!