I think this API misses one very good thing: natives for keeping file open for some time, for multiple-writings/readings.
You can see similar feature in SQLVault: https://forums.alliedmods.net/showthread.php?t=146849
1. I know i have to read 3 settings keys from the file
2. I use: ini_init( ... )
3. I use 3 times: ini_read_int( ... )
4. I use ini_end( ... )
How it works?
ini_init() creates a global temporary file pointer.
if ini_read_int or others natives see what that global pointer is available they use it instead of opening and closing the file again and again.
ini_end() kills that global pointer.
Maybe it is not a big deal speaking about performance, but think a bit, when you use an API like this one you almost always know which keys you have to read and how many they are.