For the reasons I probably don’t want to hear about, curiously get_pages()
does not actually uses WP_Query
internally. Like every other way to retrieve posts does.
From a quick look a source it always treats meta_value
as string, which I would guess is the reason for you not getting expected behavior.
I would suggest to try use get_posts()
instead for more consistency with usual mechanics.