That sounds great, but I don't fully agree... IMO a compositor should be able to provide a data structure (unchangeable, mostly or fully opaque) that the app can save/restore across sessions.
Then instead have stable window IDs so the compositor can do its job properly - there is absolutely no need to self-position and outside of certain privileged apps I absolutely don't want random programs to move their windows around.