Yes, better integration with ACS core is something that should definitely happen. The whole notion that a workflow process definition is an object type is flawed (you have to do DDL to create a new process, you get lots of tables, you have unique name problems, etc., etc.). I'd like to get away from that.
The only reason I did it like that originally was that I desperately wanted the ACS Objects skinny table data storage for the case attributes, but that never worked too well anyway.
Also, I forgot if I mentioned that in the future-plans doc, but I also wanted to look into storing the process definition differently, e.g., as an XML document in a CLOB instead of in lots of different tables. Not sure if it makes things that much easier, but it did seem at the time like it would buy me some flexibility in storing multiple revisions of the same process, copying and distributing processes, etc.
Also, acs_rels should probably be used for assignments.
All in all, you're right, that this was originally designed when the core was yet very incomplete.