1) People want smaller pixels
2) Bandwidth is messed up if we use small pixels
3) Thus, my suggestion: custom characters
Here's how it works: You give a function a 'character map' and a character (an undefined one, such as `). It sets the value of that character to the character map. It would not be able to redefine already defined characters, since that could create problems…
An example of how I would expect this to work(making an `):
local cMap = [[
10000
01000
00000
00000
00000
00000
00000
]]
textutils.setPixel( cMap, '`' )
There would not be more than two colors, because there are two colors: textcolor and backgroundcolor.
Now, to use this in an actual program:
local cMap = [[
10000
01000
00000
00000
00000
00000
00000
]]
textutils.setPixel( cMap, '`' )
term.write( "I can draw a `!" )
Edit: another idea, if it's called with only the string, it sets the first available character and returns it.
local myPixel = textutils.setPixel( cMap )
term.write( "I made ".. myPixel .."!" )