[df_io] centralize smart ptr type choice and creation