Advanced Custom Fields functionality without plugin

I am aware of the capability of adding meta boxes for single text fields, etc, but that’s not what I am actually after.

Meta fields aren’t just for “single text fields”, the database type is longtext:

mysql> DESCRIBE wp_postmeta;
+------------+---------------------+------+-----+---------+----------------+
| Field      | Type                | Null | Key | Default | Extra          |
+------------+---------------------+------+-----+---------+----------------+
| meta_id    | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment |
| post_id    | bigint(20) unsigned | NO   | MUL | 0       |                |
| meta_key   | varchar(255)        | YES  | MUL | NULL    |                |
| meta_value | longtext            | YES  |     | NULL    |                |
+------------+---------------------+------+-----+---------+----------------+
4 rows in set (0.08 sec)

This is intentional so you can store just about anything you want in a meta field. When you create your meta box you can use any form input you like as long as you handle it correctly when saving the post.